У меня есть двоичное изображение, и я разделил это изображение на несколько блоков. например изображение (60x60), разделенное на 4 блока
(30x30) (30x30)
(30x30) (30x30)
Теперь я хочу вычислить центроид каждого блока, я ищу формулу для этого и в итоге получил
Как я могу сделать это с помощью Matlab и в чем разница между этим методом и regionprops(...,'Centroid')
Обновление 1: это то, что я написал до сих пор...
m = 2;
n = 2;
im = imread('C:\Users\Home\Desktop\Samples\0_1.bmp');
flippedIm = 1-im;
boundary = regionprops(flippedIm, 'BoundingBox');
boundedIm = vertcat(boundary(1).BoundingBox);
xmin = boundedIm(1);
ymin = boundedIm(2);
width = boundedIm(3);
height = boundedIm(4);
croppedIm = imcrop(flippedIm,[xmin ymin width height]);
%USE X TO TEST
x = reshape(1:9,3,3)';
x = myPadding(x,m,n);
%a contains cells (blocks)
a = mySplit(x,m,n);
measurements = regionprops(x,'Centroid');
display(measurements(1));
И результат этого кода...
measurements =
9x1 struct array with fields:
Centroid
regionprops
, должен быть идентичен центроиду, рассчитанному по вашей формуле. Вы получаете разные результаты? Почему так важно, что ваше изображение разделено на 4 блока? Если в вашем вопросе чего-то не хватает, если вы можете найти центроид одного изображения, вы можете найти центроиды 4 изображений. - person beaker   schedule 24.02.2017regionprops
дает мне массив структур 9x1, как я уже упоминал выше, разве центроид не должен быть координатами (x, y)? почему он дает мне значения 9x1? Извините, но не могли бы вы объяснить мне, где я не прав, заранее спасибо - person Hossam Houssien   schedule 24.02.2017regionprops
для недвоичного изображения со значениями от 1 до 9 в сетке 3 x 3. Эффект от этого заключается в том, что он обрабатывает каждый пиксель как отдельный объект. Вот почему у вас есть 9 центроидов и, следовательно, массив из 9 элементов. Если вы изучите каждый центроид массива структур, вы увидите, что он точно совпадает с положением каждого элемента в сетке 3 x 3. Проще говоря, вы неправильно используете функцию с данным вводом. - person rayryeng   schedule 24.02.2017a
в вызовеregionprops
вместоx
, ноx
по-прежнему является недвоичной матрицей. Вам нужно либо преобразовать в двоичный код, либо убедиться, что ввод действительно то, что вы хотите. - person rayryeng   schedule 24.02.2017