Я пытаюсь разбить изображение на components.This мой image- Соотношение сторон компонентов изображения в MATLAB
Это код-
image=imread('compo1.jpg');
image=imresize(image,[394 464]);
image = im2bw(image);
image=imcomplement(image);
[imx imy]=size(image);
new1=zeros(imx,imy);
compo = bwlabel(image,8) ;
mx=max(max(compo));
for i=1:mx
[r,c] = find(compo==i);
new1=zeros(imx,imy);
rc = [r c];
[sx sy]=size(rc);
for j=1:sx
x1=rc(j,1);
y1=rc(j,2);
new1(x1,y1)=1;
end
imshow(new1);
s = regionprops(new1, 'BoundingBox');
A =(s.BoundingBox(4)/s.BoundingBox(3))
end
Я использую bwlabel
, но вот мой изображение имеет один подключенный компонент, поэтому его не работает. Я хочу выделить каждую строку как отдельные сегменты. Моя главная цель - найти соотношение сторон каждого сегмента линии. Как я могу это сделать без использования bwlabel
?
Вы не можете использовать 'bwlabel', поскольку он представляет собой один отдельный компонент. Что делать, если вы сначала идентифицируете все строки, например, преобразовываете Hough, а затем обрабатываете сегменты, просматривая переходы или что-то в этом роде. – kkuilla
Я бы предложил вам попробовать сделать частичные производные на изображении с использованием разных масок. Первым шагом может быть разделение вертикальных горизонтальных и диагональных компонентов (с использованием разных масок). Второй шаг можно выполнить с помощью простого обнаружения края. Это идея, попробуйте разобраться. –