分段对象内部的形象

7视图(30天)
赃物鬃毛
赃物鬃毛 2021年8月25日
回答: 焉耆刘 2021年9月27日
我问类似的问题前一段时间,我在这里再次询问类似。
我想段图像内部的对象。我用multithresholding分离图像分成3部分,但我只对中间部分感兴趣。通常这个中间部分是结果从第二阈值。
这是我的代码:
fullFileName =“……”;%插入完整图像名
img = rgb2gray (imread (fullFileName));
未识别的函数或变量“fullFileName”。
originalimg = imread (fullFileName);
%平滑图像,因为它通常帮助很大
img = imnlmfilt (img,“DegreeOfSmoothing”15岁的“SearchWindowSize”21岁,“ComparisonWindowSize”11);
img = imgaussfilt (img 3“FilterSize”9);
打= multithresh (img, 2);
打=(0打正);
k = 1:长度(打)1
掩码= img >打(k) & img <打(k + 1) 1;
标题= sprintf (%和% d之间的“面具”打(k),打(k + 1) 1);
掩码= bwareaopen(面具,5000);
= imfill(面具,面具“黑洞”);
掩码= bwareafilt(面具,1);%得到最大的连接blob
如果(k = = 2)%感兴趣的地区
BWshow = originalimg。* uint8(面具);
imshow (BWshow []);
轴(“上”,“图像”);
标题(标题,“字形大小”字形大小,“翻译”,“没有”);
impixelinfo ();
结束
结束
我知道如何填满黑色的空间内的图片: %阅读评论的实际的正确代码
%填充黑色空间内部对象
(行、列)=(面具)大小;
firstRows = 0(1,列);
lastRows = 0(1,列);
坳= 1:列
fr =找到(面具(:,上校),1,“第一”)
如果~ isempty (fr)
firstRows (col) = fr;
lastRows (col) =找到(面具(:,上校),1,“最后一次”)
结束
结束
我的问题是与额外的像素检测的影子。这是意味着它是一个错误的检测。我在附件图片突出显示错误。我想做类似于上面的“填满黑色的空间代码”,而是“第一”行我想填第二或第三行开始为例。
其中的大部分代码都是我以前的问题。我的实际代码有点不同,但这个问题我只是使用这个。
6个评论
赃物鬃毛
赃物鬃毛 2021年8月26日
编辑:赃物鬃毛 2021年8月26日
这并不工作剩下的图像。指定一个固定的阈值值不是我要求的。
顺便说一下,带着面具的图像或面具本身是所有我需要的。我只是想作物中间的物体图像。其余不重要。谢谢你的努力。

登录置评。

答案(1)

焉耆刘
焉耆刘 2021年9月27日
先生,请检查下代码来得到一些信息
clc;清晰的所有;关闭所有;
文件名=“https://ww2.mathworks.cn/matlabcentral/answers/uploaded_files/722444/image3.jpg”;
我= imread(文件名);
如果ndims (im) = = 3
我= rgb2gray (im);
结束
bw = imbinarize (im,“自适应”,“ForegroundPolarity”,“黑暗”,“敏感”,0.3);
bw = ~ bw;
bt = bw;
%使目标
bw = imclose (bw strel (“行”轮(大小(bw, 2) * 0.5), 0));
[L, num] = bwlabel (bw);
统计= regionprops (L);
我= 1:num
.BoundingBox recti =统计(我);
如果recti (3) > (bw, 2) * 0.8大小& & recti recti(2) +(4) <大小(bw, 1) * 0.8
其他的
bw (L = = i) = 0;
结束
结束
bt =逻辑(bt。* bw);
%薄
bt = imclose (bt, strel (“磁盘”5));
bt = imopen (bt, strel (“磁盘”2));
bt = bwmorph (bt,“薄”、正);
bt = imdilate (bt, strel (“磁盘”2));
%的标签图片
im1 =我;im2 =我;im3 =我;
im1 (bt) = 255;im2 (bt) = 0;im3 (bt) = 0;
imt =猫(3 im1 im2 im3);
图;imshow (imt, []);

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!