如何用Matlab检测红圈中错位瓶子并排除规整摆放的瓶子
如何仅检测 crate 中倾斜错位的瓶子?
我现在需要只识别出像红圈标注的那种倾斜错位摆放的瓶子,但试了好几种图像处理方法,结果总是会把图像里所有边缘的瓶子都检测出来。想请教下有没有办法只定位这类倾斜的瓶子,或者该怎么调整我现有的代码呢?
已尝试的MATLAB代码
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);
注:原始图像见相关附件。
内容的提问来源于stack exchange,提问作者4daJKong
相关产品推荐
相关产品推荐

