Чтобы проверить евклидово расстояние от центра до карты региона в двух регионах - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть серое изображение 450x450.Соседство каждого пикселя, подлежащего обработке, определяется евклидовым расстоянием на основе двух радиусов, R1 и R2.Следовательно:

  • Все пиксели в окрестностях R1 и R2 должны суммироваться соответственно.
  • Каждый пиксель, сопоставленный с R1 и R2, должен учитываться при каждом проходе.
  • Новое изображение должно быть отношением этих двух областей: сумма пикселей, сопоставленных с R1 * Counter2 / сумма пикселей, сопоставленных с R2 * Counter1.

Как я могу сделать это в MATLAB?

1 Ответ

0 голосов
/ 30 сентября 2018

Окрестность в пределах евклидова расстояния 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;
...