Я хочу обнаружить только те бутылки неправильной формы, например, в красном круге:
Однако я пробовал несколько методов, но они находят все края bottle на изображении, есть ли способ определить только наклон bottle или как изменить свой метод?
f15 = imread('bottle_crate_15.png');
BW_15 = imbinarize(f15);
%Canny:
BW_canny = edge(BW_15, 'Canny');
imshow(BW_canny);
%bwboundaries
[B,L,N,A] = bwboundaries(BW_15, 'noholes');
imshow(label2rgb(L, @jet, [.5 .5 .5]))
hold on
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2)
end
%dilate:
im = mean(f15,4);
im = (im-min(im(:))) / (max(im(:))-min(im(:)));
bin = im2bw(im);
SE = strel('disk',1);
bin = ~imerode(~bin,SE);
bin = ~imerode(~bin,SE);
bin =~imdilate(~bin,SE);
bin =~imdilate(~bin,SE);
imshow(bin);
ps: исходное изображение: