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