我想从灰度图像中删除小点,而不会影响图像的其余部分

117意见(过去30天)
n
n 2017年6月15日
评论: 图像分析 2020年4月3日
请参考附件图片。我想删除白色的点包围在图像中,而不影响图像的其余部分。我不介意把圆点弄小一点,但不要弄大一点。
我尝试了Bwareaopen,但它将我的形象转换为我不想要的二进制!我想把它保持在灰度中,但删除点。谢谢你的任何帮助!
2评论
朱利安哈克
朱利安哈克 2017年6月15日
不得不阅读Bwareaopen,似乎是你需要的。然后,您可以使用清理的二进制图像作为索引,以将原始图像的像素设置为黑色或无论您想要的灰色。

登录评论。

接受的答案

图像分析
图像分析 2017年6月16日
下面的代码可以做到:
CLC;%清除命令窗口。
关闭所有;%关闭所有数据(imtool.除外)
清楚;%删除所有现有变量。或者如果你想要的话。
工作区;%确保显示工作区面板。
格式长g;
格式紧凑的;
字形大小= 25;
%===============================================================================
%获取用户想要使用的图像的名称。
basefilename ='Eeewvwvwv.png';%分配了他们单击的按钮上的一个。
%获取完整的文件名,PATH DEPTENDED。
文件夹= [];%确定demo文件夹的位置(适用于所有版本)。
fullfilename = fullfile(文件夹,basefilename);
%===============================================================================
读取一个演示图像。
grayImage = imread (fullFileName);
%获取图像的尺寸。
%NumbumoOfColorChannels应该是= 1的灰度图像,3个用于RGB彩色图像。
[行,列,numberofcolorChannels] =大小(灰度);
如果numberofcolorchannels> 1
这并不是我们所期望的那种真正的灰度,而是彩色的。
%使用所有通道的加权和创建灰度图像。
灰度= rgb2gray(灰度);
%备用方法:通过仅采用绿色通道将其转换为灰度级,
%,它在典型的快照中是噪声最小的通道。
%灰度=灰度(:,:,2);%采取绿色频道。
结束
%显示图像。
次要情节(2 2 1);
imshow (grayImage []);
;
标题= Sprintf(“原始灰度图像”);
标题(标题,'fontsize',fontsize,“翻译”'没有');
drawnow;
惠普= impixelinfo ();
%设置图形属性:
%放大图形到全屏。
设置(GCF,“单位”'标准化'“OuterPosition”, [0 0 1 1]);
%摆脱沿着图顶部的工具栏和下拉菜单。
设置(GCF,'工具栏''没有''菜单''没有');
给标题栏起一个名字。
设置(GCF,'名字''通过ImageAnalyst的演示''numbertitle''off'
drawnow;
通过阈值处理来分二向量。
面具=灰度> 30;
%找到了这些领域
Props = RegionProps(逻辑(掩码),'地区');
allAreas =排序([props.Area])
%仅提取大于25的斑点。
面膜= Bwareaopen(面膜,25);
%摆脱外面边界周围的白色框架。
mask = inclearborder(mask);
次要情节(2,2,2);
imshow(面具);
;
映像;由于屏幕的纵横比,%确保图像不会人工拉伸。
标题(的二进制映像的面具'fontsize',fontsize);
drawnow;
%掩模图像产生蒙面灰度图像。
maskedGrayImage = grayImage;%初始化。
MaskedGrayimage(〜掩码)= 0;%现在掩码
子图(2,2,3);
imshow(maskedgrayimage);
;
映像;由于屏幕的纵横比,%确保图像不会人工拉伸。
标题('蒙面灰度图像''fontsize',fontsize);
drawnow;
3评论
图像分析
图像分析 2020年4月3日
satyaprakash。初 阅读此链接 ,然后开始你自己的问题,并附上你的形象。如果你有一个二值图像,你不能删除黑色区域,除非你只是想要一个所有1的一维向量,因为图像必须保持矩形。你不可能有一个带有“不规则”边缘的全白图像——这没有意义。

登录评论。

更多答案(0)

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!