明确边界的像素触摸一个非广场

2视图(30天)
嗨,我想删除的边界对象从一个图像octogonal样本。请仔细看图片
我想知道如果有一种方法可以创建一个面具,imclearborder octogonal然后可能适用。
其他的建议是非常受欢迎的。
谢谢,年代

接受的答案

图像分析
图像分析 2012年2月18日
谢里夫:这不是真的那么难。只是听从我的指示,一步一步来就像我说的在我的其他答案。这是一些代码我撞在大约5分钟。我截图你的形象和保存八边形。PNG,然后写了这段代码:
clc;%清除命令窗口。
关闭所有;%关闭所有数据(除了imtool。)
imtool关闭所有;%关闭所有imtool数字。
工作空间;%确定工作区面板显示。
字形大小= 20;
%检查用户安装图像处理工具箱。
hasIPT =许可证(“测试”,“image_toolbox”);
如果~ hasIPT
%用户没有安装工具箱。
消息= sprintf (“对不起,但是你似乎没有图像处理工具箱。\你想继续的?”);
= questdlg(回复消息,“工具箱失踪”,“是的”,“不”,“是的”);
如果strcmpi(回答,“不”)
%的用户说不,所以退出。
返回;
结束
结束
%读入一个标准的MATLAB灰度图像演示。
文件夹=“C: \ \ \ \文件临时用户的;
baseFileName =“octagon.png”;
fullFileName = fullfile(文件夹,baseFileName);
%得到完整的文件名,路径前缀。
fullFileName = fullfile(文件夹,baseFileName);
如果~存在(fullFileName“文件”)
%没有找到它。检查它的搜索路径。
fullFileName = baseFileName;%没有路径。
如果~存在(fullFileName“文件”)
%仍然没有找到它。提醒用户。
errorMessage = sprintf (错误:%年代并不存在。,fullFileName);
uiwait (warndlg (errorMessage));
返回;
结束
结束
grayImage = imread (fullFileName);
%得到图像的尺寸。numberOfColorBands应该= 1。
[行列numberOfColorBands] =大小(grayImage);
%显示原始灰度图像。
次要情节(3,- 3,- 1);
imshow (grayImage []);
标题(的原始灰度图像,“字形大小”、字形大小);
%全屏放大图。
集(gcf,“单位”,“归一化”,“outerposition”,(0 0 1 1));%最大化图。
集(gcf,“名字”,“由ImageAnalyst演示”,“numbertitle”,“关闭”)
%计算并显示直方图。
[pixelCount灰度]= imhist (grayImage);
次要情节(3、3、2);
酒吧(pixelCount);
标题(原始图像的直方图,“字形大小”、字形大小);
xlim([0灰度(结束)]);% x轴手动。
网格;
%的八边形的背景
八角= grayImage < 84;
%缩小八边形的扩张。
八角= imdilate(八角,真正的(5));
%显示图像。
次要情节(3,3,3);
imshow(八角,[]);
标题(“八角形象”,“字形大小”、字形大小);
%的粒子
粒子= grayImage > 155;
%显示图像。
次要情节(3、3、4);
imshow(粒子,[]);
标题(的粒子图像,“字形大小”、字形大小);
%这两个结合起来。
binaryImage =八角|颗粒;
%显示图像。
次要情节(3、3、5);
imshow (binaryImage []);
标题(结合图像的,“字形大小”、字形大小);
%去除白色物质接触边界
binaryImage2 = imclearborder (binaryImage);
%显示图像。
次要情节(3、3、6);
imshow (binaryImage2 []);
标题(“边境清除”,“字形大小”、字形大小);
%找到我们删除的东西。
borderPixels =逻辑(binaryImage - binaryImage2);
%显示图像。
次要情节(3、3、7);
imshow (borderPixels []);
标题(“边境只有”,“字形大小”、字形大小);
%现在使用borderPixels零出原始图像
outputImage = grayImage;%初始化。
%零边界像素。
outputImage (borderPixels) = 0;
%显示图像。
次要情节(3、3、8);
imshow (outputImage []);
标题(最终的输出图像的,“字形大小”、字形大小);
对话框(的完成了演示ImageAnalyst !”);

答案(1)

图像分析
图像分析 2012年2月17日
阈值的黑暗外八边形。您可能需要扩张这一层或两层。然后阈值获得明亮的粒子。然后,这两个在一起。这让你一个二进制图像相结合,既有黑暗包围和明亮的内部粒子。然后调用imclearborder()和减去原始二进制图像结合得到一个二进制映像的黑暗包围和粒子碰它。然后用它来掩盖(零,消除)的粒子接触原始图像的边界。
你的flickr网站说“老板已经禁用下载他们的照片”所以我不能,除非你想让我发给你一份。

社区寻宝

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

开始狩猎!