【问题标题】:Scale the filter output缩放过滤器输出
【发布时间】:2015-02-08 01:45:15
【问题描述】:

我有一个使用 Sobel 运算符的子函数。在这个问题中,我必须将过滤器输出缩放到区间[0,1],以便与也在[0,1] 范围内的阈值进行比较。我应该如何改进这个功能?

function [ image_out ] = Sobel(image, threshold)
image=imread(image);
image_out=edge(image,'sobel');

maskx=[-1 0 1; -2 0 2;-1 0 1];
masky=[1 2 1; 0 0 0 ;-1 -2 -1];

resx=conv2(Image, maskx);
resy=conv2(Image, masky);

【问题讨论】:

    标签: matlab image-processing filtering signal-processing


    【解决方案1】:

    我对你的代码有点困惑。您的前两行代码:

    image=imread(image);
    image_out=edge(image,'sobel'); %// typo - should have been image, not Image - I fixed this.
    

    已经用 Sobel 算子找到了边。我也对你的第一行感到困惑。 image 是图像文件名的字符串吗?你没有说清楚......所以我假设它是。在任何情况下,您都可以另外指定位于[0-1] 之间的第三个参数,该参数指定您希望找到边缘的阈值。但是,我的猜测是您不想这样做并且您想自己执行过滤操作。一旦你用水平和垂直梯度对图像进行卷积,然后找到这些分量的幅度,将此输出缩放到[0-1],然后应用你的阈值。我会使用im2double 将您的图像转换为双倍以允许浮点精度......尤其是如果我们要计算幅度。

    因此,您的函数实际上是:

    function [ image_out ] = Sobel(image, threshold)
    image = imread(image);
    image = im2double(image); %// Change to double
    maskx = [-1 0 1; -2 0 2;-1 0 1]; 
    masky = [1 2 1; 0 0 0 ;-1 -2 -1];
    
    resx = conv2(image, maskx, 'same'); %// Filter the image - Make sure you use the 'same' flag
    resy = conv2(image, masky, 'same');
    
    mag = sqrt(resx.^2 + resy.^2); %// Compute magnitude
    mag = (mag - min(mag(:))) / (max(mag(:)) - min(mag(:))); %// Scale to [0-1]
    image_out = mag >= thresh; %// Now apply threshold
    

    我对您的代码进行了一些更改。具体来说,在使用conv2 时,您需要确保使用'same' 标志,以便输出与输入图像大小相同。我们计算水平和垂直梯度,然后计算幅度。我们重新调整幅度,使其位于[0,1] 之间,然后用thresh 对图像进行阈值处理,这也在[0,1] 的范围内。任何强度大于或等于此值的位置都将设置为逻辑true,而所有其他值都设置为逻辑false


    如果我可以提出一些建议,我会使用 imfilter 而不是 conv2 来过滤您的图像。 conv2 用于一般 2D 信号,而 imfilter 专门用于过滤图像。因此,也许将您的 conv2 调用替换为:

    resx = imfilter(image, maskx, 'replicate', 'conv');
    resy = imfilter(image, masky, 'replicate', 'conv');
    

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 2013-04-30
      • 2013-07-13
      相关资源
      最近更新 更多