Matlab: извлечь части изображения (без фона)

Я работаю с изображениями листьев в Matlab. Я буду сравнивать части этих листьев с помощью некоторых функций сходства (например, евклидова), но сначала мне нужно извлечь части каждого отпуска, а затем сохранить их. Итак, теперь это моя проблема: как мне выбрать те части и нарисовать прямоугольник, который показывает мне, что будет вырезано? Я уже получил centroid и boundingBox с помощью функции regionprops (вы можете увидеть их красным на изображении firstResultsMatlab.png). Тем не менее, я изо всех сил пытаюсь нарисовать и извлечь части, подобные тем, которые выделены синим (то же изображение). Я не хочу получать детали с черного фона, только части из отпуска.

Я также добавил изображения листа в качестве примера того, над чем я работал, и код, который я использовал для получения boundingBox и центроида. Любые идеи приветствуются!

Заранее большое спасибо.

I = imread('C:\Users\IBM_ADMIN\Desktop\Mestrado\Imagens_Final\IMG1_N1_1.png');
L = bwlabel(I);

s = regionprops(L,'BoundingBox');
stat = regionprops(L,'centroid');

hold on;
colors = hsv(numel(s)); 
for k = 1:numel(s) 

him = imshow(I); 
hold on; 
rectangle('Position', s(k).BoundingBox, 'EdgeColor', colors(k,:));
plot(stat(k).Centroid(1),stat(k).Centroid(2),'rx');
end

Matlab-результаты лист-1

0 ответов

Другие вопросы по тегам