Matlab:对图像求导有困难吗?

标签 matlab image-processing filtering gaussian

因此,我需要在该作业中取图像在 x 方向的导数,目的是获得某种形式的梯度。我的想法是在图像的每一行上使用 diff(命令),然后应用高斯滤波器。我还没有开始第二部分,因为第一部分给我带来了麻烦。在尝试获得 x 导数时,我有:

origImage = imread('TightRope.png');

for h = 1:3 %%h represents color channel
    for i = size(origImage,1)
        newImage(i,:,h) = diff(origImage(i,:,h));  %%take derivative of row and translate to new row 
    end
end

问题出在我收到错误“下标分配维度不匹配”的过程中。。

Error in Untitled2 (line 14)
    newImage(i,:,h) = diff(origImage(i,:,h));

有谁知道为什么会发生这种情况以及我的方法是否正确获取梯度/高斯导数?

最佳答案

为什么不使用 fspecial以及imfilter相反?

figure;

I = imread('cameraman.tif');

subplot 131; imshow(I); title('original')

h = fspecial('prewitt');
derivative = imfilter(I,h','replicate'); %'

subplot 132; imshow(derivative); title('derivative')

hsize = 5;
sigma = 1;

h = fspecial('gaussian', hsize, sigma) ;
gaussian = imfilter(derivative,h','replicate'); %'

subplot 133; imshow(gaussian); title('derivative + gaussian')

结果如下:

enter image description here

关于Matlab:对图像求导有困难吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35738528/

相关文章:

matlab - 在 MATLAB 中的 cell2mat 之前用逻辑 0 替换空单元格

Javascript 图像处理?逐个像素

sql-server - SQL 选择两列相等但第三列不同的行

sql - 如何填充SQLite查询结果

matlab - 1x1 矩阵的第一个元素与 1x1 矩阵的所有元素之间的差异

python-3.x - 查找图像中圆的质心和颜色值

batch-file - xcopy 递归复制目录和子目录,并仅按扩展名过滤文件名

javascript - 为什么使用多个条件过滤对象数组会返回空数组?

oop - MATLAB 是否支持 "callable"(即类函数)类?

python - 如何在 python 中以更快的方式迭代图像像素?