检查两个区域中从中心到地图区域的欧氏距离



我有一个 450x450 的灰色图像。要处理的每个像素的邻域由基于两个半径 R1 和 R2 的欧几里得距离定义。 因此:

R1 和
  • R2 邻域中的所有像素应分别求和。
  • 映射到 R1 和 R2 的每个像素应每次通过计数。
  • 新图像应为这两个区域的比率:映射到 R1*计数器 2 的像素总和/映射到 R2*计数器 1 的像素总和。

如何在 MATLAB 中执行此操作?

欧几里得距离R1内的邻域可以按如下方式获得:

[x,y] = meshgrid(-R1:R1,-R1:R1);
r = x.^2 + y.^2;
k1 = r < R1.^2;

与此内核的卷积导致,对于每个输出像素,其邻域中的像素总和:

sum1 = conv2(img, k1);

(其中img是你的图像 - 请确保它是浮点类型,如果它是整数类型,则可能无法正确表示总和的结果(。

您可以对R2重复上述相同的代码,导致sum2,然后计算您的比率:

result = sum1 ./ sum2;

最新更新