You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 20:08:15