如何作物对象在图像自动?

5视图(30天)
我想计算像素(二进制= 1)在对象(在本例中它是一个药丸),但这张照片有噪音,所以我认为我应该作物图像自动计数如何作物圆圈。如何计算像素或新建议

接受的答案

为副总经理
为副总经理 2022年11月10日
它可能是更好的工作得到更好的分割,但这是一种你可能方法清理。
%,这是一个逻辑的一个屏幕截图
%这不会是相同的尺寸与原始
使用imwrite %保存图像,而不是储蓄
inpict = imread (“pillsc.png”);
%摆脱小斑点
inpict = bwareaopen (inpict, 200);%选择一些最低blob区域
%得到对象属性
S = regionprops (inpict“循环”,“区域”,“图像”);
%找到近乎圆形的东西
iscircular = ((S。循环]> 0.9);%选择一个限制
circareas = [S (iscircular) .Area];%的圆形区域对象
%如果你想选择只有最大的圆形物体
[bigcircarea bigcircidx] = max (circareas);
bigcircidx = iscircular (bigcircidx);
%如果你想剪短的对象的副本
bigcircpict = S (bigcircidx) .Image;
%显示对象和它的面积
imshow (bigcircpict)
bigcircarea
bigcircarea = 1968
3评论
为副总经理
为副总经理 2022年11月10日
再次,保存 这些图片 ,而不是截图的图片。我最终使用的图片是不一样的你用的图片,因为你给了我一个压缩的截图,可能不是相同的大小。
无论如何。评论提到,你将不得不调整参数以适应任何你使用图片。因为我没有 你的任何实际的图片 ,这不是我能做的事情。我添加一个小错误检查。循环是由前阈值低于预期。
%,这是一个逻辑的一个屏幕截图
%这不会是相同的尺寸与原始
使用imwrite %保存图像,而不是储蓄
inpict = imread (“aaaaaaaaaaaaaaaaaaaaaaaaaa.png”);
%摆脱小斑点
inpict = bwareaopen (inpict, 200);%选择一些最低blob区域
%得到对象属性
S = regionprops (inpict“循环”,“区域”,“图像”);
%找到近乎圆形的东西
iscircular = ((S。循环]> 0.7);%选择一个限制
如果isempty (iscircular)
错误(没有发现在这些条件下的圆形对象)
结束
circareas = [S (iscircular) .Area];%的圆形区域对象
%如果你想选择只有最大的圆形物体
[bigcircarea bigcircidx] = max (circareas);
bigcircidx = iscircular (bigcircidx);
%如果你想剪短的对象的副本
bigcircpict = S (bigcircidx) .Image;
%显示对象和它的面积
imshow (bigcircpict)
bigcircarea
bigcircarea = 8707
我不知道不同的循环 甚至是值得的 。我不知道其他的图片是什么样子,我不知道能做些什么(或完成)改善初始阈值。

登录置评。

答案(1)

图像分析
图像分析 2022年11月10日
我猜你搞懂了,因为你接受答案但我会提供一个不同的方式。简单的电话 imclearborder 紧随其后的是 bwareafilt
binaryImage = imread (“pillsc.png”);
次要情节(2,1,1);
imshow (binaryImage);
%去掉斑点接触边界。
binaryImage = imclearborder (binaryImage);
%的最大的斑点。
binaryImage = bwareafilt (binaryImage, 1);
次要情节(2,1,2);
imshow (binaryImage);

类别

找到更多的在图像处理工具箱帮助中心文件交换

s manbetx 845


释放

R2021a

社区寻宝

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

开始狩猎!