compute像素的水平绝对差值

时间:2013-12-12 10:42:35

标签: image matlab image-processing linear-algebra discrete-mathematics

我们有M行和N列的测试图像 f(x,y),对于x∈[1,M]和y∈[1,N]。水平绝对 像素的差值由...定义 D(x,y)= | f(x,y +1) - f(x,y -1)|。 如何在matlab中实现它需要帮助

3 个答案:

答案 0 :(得分:1)

这将生成您需要的相同大小的矩阵:

mat1 = [zeros(2,size(f,2)); f];% adds 2 rows of zeros to begining
mat2 = [f;zeros(2,size(f,2))]; %adds 2 row of zeros to the end
Dd = mat1-mat2;
D = Dd(2:((size(Dd,1)-1)),:);%crop Dd matrix to size(f)

答案 1 :(得分:0)

D = abs( f(1:end-1,:) - f(2:end,:) );

也可以查看diff命令。请注意,D的行数少于f

答案 2 :(得分:0)

aux = abs(diff(f,[],2));
D = max(aux(:,1:end-1), aux(:,2:end));

例如:给定

f = [3 5 6 4
     2 5 4 3
     8 9 3 1];

结果是

>> D
D =
     2     2
     3     1
     6     6