如何找到和色圈在一个二进制图像圈使用滑动窗口在图像吗?

6视图(30天)
我有一个二进制图像中有圈子,我想做一个滑动窗口将经历的形象,当它发现圆它颜色圆。我想要的结果是相同的形象但是有彩色圆圈。

答案(3)

彰Agata
彰Agata 2020年5月12日
编辑:图像分析 2020年5月13日
查看原始图像,目标区域充满了飞机的颜色。
所以我试图应用 entropyfilt 提取ROI。我相信下面的代码可以提取目标区域。
然后,下一步应该是什么?(充满了特定的颜色?或近似椭圆区域?)
%读取图像并转换为灰度
我= imread (“image.jpeg”);
Igray = rgb2gray(我);
%应用熵过滤器
J = entropyfilt (Igray);
J = mat2gray (J);
% Binarize并提取低熵的地区
BW = imbinarize (J);
BW = ~ BW;
%提取ROI和清理
BW = imclearborder (BW);
BW = imfill (BW,“黑洞”);
BW = bwareafilt (BW,[100正]);
%显示结果
imshowpair (BW,我“蒙太奇”)
6个评论
图像分析
图像分析 2020年5月13日
编辑:图像分析 2020年5月13日
那就不要叫imclearborder ()。
自Agata-san回答,为什么它这么重要,你使用 不同的 一个基于Sobel过滤器不工作和每个人都推荐吗?
除此之外,你的边缘图像看上去不像一个边缘()函数。
clc;%清除命令窗口。
关闭所有;%关闭所有数据(除了imtool。)
清晰;%擦掉所有现有的变量。或者clearvars如果你想要的。
工作空间;%确定工作区面板显示。
格式长g;
格式紧凑的;
字形大小= 22;
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%读入图像
文件夹= pwd;
baseFileName =“image.jpeg”;
%得到完整的文件名,路径前缀。
fullFileName = fullfile(文件夹,baseFileName);
%检查文件是否存在。
如果~存在(fullFileName“文件”)
%的文件不存在,没有找到它在该文件夹。
%检查整个搜索路径(其他文件夹)去掉文件的文件夹。
fullFileNameOnSearchPath = baseFileName;%没有路径。
如果~存在(fullFileNameOnSearchPath“文件”)
%仍然没有找到它。提醒用户。
errorMessage = sprintf (的错误:% s在搜索路径的文件夹不存在。,fullFileName);
uiwait (warndlg (errorMessage));
返回;
结束
结束
grayImage = imread (fullFileName);
%得到图像的尺寸。
% numberOfColorChannels应该为灰度图像,= 1和3的RGB彩色图像。
(行、列,numberOfColorChannels) = (grayImage)大小;
如果numberOfColorChannels > 1
%这不是灰度像我们预期的颜色。
%使用加权和的渠道来创建一个灰度图像。
grayImage = rgb2gray (grayImage);
%替代方法:把它转换成灰度只通过绿色通道,
%,在一个典型的快照将噪声信道。
% grayImage = grayImage (:: 2);%绿色通道。
结束
%显示图像。
次要情节(2 2 1);
imshow (grayImage []);
标题(的原始灰度图像,“字形大小”字形大小,“翻译”,“没有”);
impixelinfo;
hFig = gcf;
hFig。WindowState =“最大化”;%可能不会在MATLAB的早期版本中工作。
drawnow;
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%提取的图像
%二进制图像
binaryImage =边缘(grayImage,“索贝尔”);
%去掉包围。
% binaryImage = imclearborder (binaryImage);
次要情节(2,2,2);
%图
imshow (binaryImage []);
impixelinfo;
标题(的边缘图像,“字形大小”字形大小,“翻译”,“没有”);
impixelinfo;
edtImage = bwdist (binaryImage);
次要情节(2、2、3);
imshow (edtImage []);
impixelinfo;
标题(“美国的形象”,“字形大小”字形大小,“翻译”,“没有”);
impixelinfo;
%阈值1
% (lowThreshold highThreshold] =阈值(3行edtImage);
% binaryImage = edtImage > lowThreshold;
binaryImage = edtImage > 15;
次要情节(2、2、4);
imshow (binaryImage []);
impixelinfo;
标题(“面具”形象,“字形大小”字形大小,“翻译”,“没有”);
impixelinfo;

登录置评。



图像分析
图像分析 2020年5月10日
“我想做一个滑动窗口将经历“为什么? ? ?为什么不直接使用bwlabel()和label2rgb () ?
%的高价票子图像,现在需要分裂到左边,正确的字符。
[labeledImage, numberOfRegions] = bwlabel (binaryImage);
%让我们为每个团分配一个不同的颜色视觉上显示用户不同的斑点。
coloredLabels = label2rgb (labeledImage,“hsv”,“k”,“洗牌”);%伪随机彩色标签
%显示这条线——两个字符与每个单独的团在自己独特的颜色。
imshow (coloredLabels);
为什么要使用一些复杂的扫描程序,当你可以有两个简单的内置函数调用吗?

标签

s manbetx 845


释放

R2015a

社区寻宝

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

开始狩猎!