我有一个450x450的灰度图像。每个待处理像素的邻域由基于两个半径R1和R2的欧几里得距离定义。因此:
如何在MATLAB中做到这一点?
答案 0 :(得分:1)
在欧几里德距离R1
之内的邻域可以通过以下方式获得:
[x,y] = meshgrid(-R1:R1,-R1:R1);
r = x.^2 + y.^2;
k1 = r < R1.^2;
与该内核的卷积导致每个输出像素在其附近的像素之和:
sum1 = conv2(img, k1);
(其中img
是您的图像,请确保它是浮点类型,如果是整数类型,则可能无法正确表示总和的结果)。 / p>
您可以对R2
重复上面的相同代码,得到sum2
,然后计算比率:
result = sum1 ./ sum2;