图像缩略图

图像分割的教程

版本1.6.0.0(6.57 kB) 图像分析师
图像处理教程向初学者演示基本概念。

713下载

更新2015年4月3日

查看许可协议

编者按:受欢迎的文件2013年2015年2018年

此文件被选为Matlab Central本周精选

完美的初学者,这个演示演示了简单的目标检测(分割,特征提取),测量和过滤。需要图像处理工具箱(IPT),因为它演示了该工具箱提供的一些函数,而且它使用了该工具箱提供的“硬币”演示图像。如果您有IPT(您可以在命令行中输入ver进行检查),那么您应该能够通过简单地将此代码复制并粘贴到一个新的编辑器窗口中来运行此演示代码,然后单击工具栏上的绿色“run”三角形。
首先找到所有对象,然后过滤结果挑选某些大小的对象。用一个简单的例子对阈值,标签和区域分植物的基本概念进行了演示。

对于那些刚接触MATLAB图像处理能力的用户来说,这是一个很好的教程,可以在他们继续学习更复杂的算法之前学习。

用R2008b通过R2011b进行测试。

引用

图像分析(2020)。图像分割的教程(//www.tianjin-qmedu.com/matlabcentral/fileexchange/25157-image-segmentation-tutorial), MATLAB中央文件交换。检索

评论和评级(216.

Jemery张

sayar芽

蕾妮周

Maysamf

Farnaz Gh

亲爱的形象分析师:您的教程非常有用。作为图像分析的初学者,它帮助我理解了如何分离图像的相关部分和分析数据。我用你的脚本做了数据分析。请让我知道如何在我的出版物中引用您的代码。谢谢你的帮助!

萨芬娜,图像处理算法需要适应图像。它是否适用于你的特定硬币只是你需要测试的东西。
VV_ART,如果您对特定图像处理算法有疑问,请在答案论坛中询问它们,而不是此处。在那里,我们可以给你一个合适的答案,在这里的简要评论部分中我不能做的事情。谢谢。

AJay

vv_art

亲爱的先生。
目前,我正在使用图像处理检测Resistist中的不同颜色。但是,我无法为所有图像和所有颜色检测进行这件事。请帮助如何批准。如果可能的话请发给我代码先生。

谢谢你!

MarieLe

我们可以为不同的硬币图像运行此代码吗?肯定会在他们身上运行吗?图片的质量是否重要?

谢谢很多!通过阈值分割黑暗区域在网上难以追踪,但你的工作很有魅力!

非常感谢你这真的很棒,我想知道如何将其应用于图像吗?

非常感谢!我怎么把这个应用到视频中?

亲爱的图像分析,

你的图像分割教程是一个很大的帮助。我遇到了下面的问题,不知道你能不能指导我。我有一个分割的图像,其中包含了岩石的一部分,包括裂缝区域和白色角落区域。我想要计算黑暗区域中白色像素的总数(即破碎像素的总数)。我怎样才能避免角落的白色区域呢?感谢。

Svetlana,看看答案论坛的“空间校准”,因为我已经发布了转换像素到真实世界单位,如毫米的代码。

张xiaorui

你好,
你得到的面积单位是像素…我使用microCt侦察图像,需要找到相似形状的区域,但以毫米单位。你知道我该怎么做吗?

您好,这段代码非常有用。无论如何,我目前在我的最后一年项目上工作,我正在使用你的代码来检测正常细胞和镰状细胞。编码工作完美,然而,它没有检测到镰状细胞。请问您的参数值是多少?我应该对哪个部分的参数值进行调整

嗨图像分析师 - 此代码非常有用。thanx.

PLZ澄清一下,为了图像分割的目的,如果我们使用MATLAB函数(RegionProps),那么这是任何算法吗?或只是一个函数

嗨图像分析师 - 我认为这可能是这种情况。如何将像素值更改为黑色或白色?

非常感谢你的帮助,乔

你好先生,
我们可以把不同的硬币分别存到一个文件夹里吗?如果是,你能解释一下如何用代码

Joe Perkins,图像必须保持矩形,因此硬币必须在硬币本身的圆形区域外部有一些背景。你所能做的就是改变背景,没有删除它。您可以拥有这个原始背景,或者一些均匀强度,如黑色,白色或一些灰度。

这个脚本可以用来计算图像的黑色或白色像素吗?我试图通过查看代码来确定是否可以做到这一点,但由于这个示例的复杂性,我不确定。

才华横溢的

嗨,图像分析,

辉煌的演示谢谢!

你将如何将最终图像中的硬币从它们周围的背景中分离出来,从而使输出图像只包含硬币?

非常感谢,

梅BAC

PE.

亲爱的图像分析,

再次感谢你的密码。我是麻省理工学院的神经学家你最近的代码给我留下了深刻的印象。我有一个例子神经钙成像tiff文件(堆栈tiff文件从一个视频)。我必须从单个突触位点提取钙信号(峰值,roi)。我们的目标是绘制活跃的突触。我真的相信你的代码可以解决我的问题。你能在这方面提供更多的帮助吗?

非常感谢你,

亲切的问候
苏雷什

我真的很喜欢这个代码。我有一些背景在图像分析,但这些代码是非常有用的。
请发布更多前进的例子。谢谢你!

轩杜

像我一样的小鬼。谢谢很多

Moj

您好Image Analyst,我将在图像上进行一些分析,我需要编写一个代码,以自动识别不同点的不同点的坐标而没有人为干扰。如果你提出一些方法,我会感激。提前致谢。

肯张

很好的工作。谢谢你的共享。

sumana

不错的教程。谢谢你!

全体成员,
谁能给我大津阈值的代码,用于甲状腺dicom图像

太好了!

我这样做了艰难的方式,直到我看到这个,那么它很容易。

谢谢

Gud.

MANU BN.

很棒的工作。受你的启发,我也上传了13个我的项目来分享知识。请付款https://in.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A620308&sort=ratings_desc

有人帮助我吗?在我的论文工作的内容图像检索HSV、CCV和LBP ..如果可能的话,请提供我的邮箱,我的邮箱是himanshu.atra@gmail.com

非常有用。并且如此精心记录。

你好,我目前有静脉的图像二值。我已经尝试使用代码的部分,以便我可以找到图像的边缘/节点的坐标,但没有运气。任何提示都会受到赞赏。

如果有人对如何使这个演示适应他们的特定图像有具体的问题,请将图像和问题描述发布到Mathworks网站的回答论坛。

你好,亲爱的我需要你的支持来找到一个对象在一个二进制图像万博1manbetx的中心为了我可以从二进制映像的农作物,对象,注意,二进制图像只有一个对象不再这样噢我可以确定该对象的中心

Imanalyst

谢谢,该文件帮助我了解细分。

如何与DICOM图像一起使用?你能帮我解决图像的特征吗?

哇;我同意你是图像分析和处理方面最好的老师;这个教程确实给了我很大的帮助,非常感谢;

我想向你学习更多,因为我也接近我的项目;请写信给我:powellorenz@gmail.com

我可以问你几个问题。

谢谢

谢谢你的分享,这对我有帮助

FATIN S.

艾德。我可以问你一些关于我如何检测到你这样的圈子的私人问题,但我的圈子不是真的圈子,因为我捕捉到一个网球和平庞球。你给我一个解决方案。我试试你的编码似乎没有工作。如果你感到Free.tyvm,请在Fatinsarah31@gmail.com上给我发电子邮件

非常好,谢谢

拉美西斯,你只要把>的符号换成<这样它就能找到暗的物体而不是亮的物体。

如何处理物体强度较低的图像,比如CT中的器官分割?

欢呼,
拉美西斯H。

谢谢,这太棒了。

拉格迪

它对我很有用。谢谢你!

谢谢你的精彩教程。我该怎么做,如果我必须从图像中提取一个特定的部分,它的方向可以是。

我有个问题,
是否有一种自动的方法从二值图像中过滤不需要的区域,想要的区域是不同规模的字符候选区域(有时是大字母,有时是小字母)?
请帮帮我

重要的

EYP说

完美! !谢谢分享!

伟大的工作! !
非常感谢。

海达尔

请把代码发给我们

ridho.

感谢分享

amruta.

非常感谢分享;

杜尔加

不错的工作!

亲爱的图像分析,

谢谢你这个美好的代码。我正试图用它来用于油掌成熟的检测。

白木bba

看起来既简单又成熟!充满了评论,因此很容易跟随作者的思路链。一个人可以简单地根据他/她的需要做出调整。很棒的工作形象分析师!

fereshte

我得到一个错误…请帮助我。

???使用==> cd时出错
不能CD到(名称不存在或不是目录)。

xsfeng

亲爱的图像分析,

谢谢你的这个美好的代码。我对“守门员”BLOB图像有一个小问题。这可能是我们在仍然保持他们的号码上段展示守门员Blobs吗?像追查哪个斑点是最亮的,哪个数字是最黑暗的?我该如何编写代码?

谢谢你的帮助!

你好,
我使用这段代码来找到这个文件所做的每个对象的面积,但是我需要相同对象的数字出现应该被知道,并且应该被绘制。

斯科特

工作完美-非常有用!!

Onesmo

当我运行它时,我也得到了与xsfeng相同的错误。

错误使用fileparts
输出参数太多。

BlobsDemo中的错误(第191行)
[thisfolder,basefilename,ext,版本] = fileparts(thisfile);

卢尔德

dghgfh.

raviraja

xsfeng

亲爱的图像分析,

我运行此脚本时,我收到了错误信息:

错误使用fileparts
输出参数太多。

BlobsDemo中的错误(第191行)
[thisfolder,basefilename,ext,版本] = fileparts(thisfile);

你能帮我一下吗?很多谢谢!

好的好的编程

MSTAFS,更复杂的算法更加依赖于图像内容。更复杂的内容需要更复杂的算法。我确实在彩色细分中添加了一些演示,但我想坚持相当标准的分割,因为有无限数量的独特特殊的。

赫拉尔

亲爱的图像分析,
您能否为我们提供更多的推进分割算法,以获得不同的工业应用
分割过程是所有的最难运行

你好图像分析师,

您如何在您的阈值代码中获得要在前景和背景之间分开的值的值。

例如,为什么是70和0.94
阈值 - 70),双(0.94 * MaxyValue(2))

琼Bilheux

查看代码教会了我一些新技巧……很好。

恰当

很棒,这是一个关于特征提取的很好的演示。

Arul

查尔斯

这是如此乐于助人。非常感谢你!

太好了! ! !

摩尔德

尼娜,要做到这一点,你需要使用约翰·德埃里科的研究中心间项目。在文件交换中查找它。你也可以像这个boundary (1:10:end,2)一样进行子采样,尽管这些子采样不一定是均匀间隔的。

尼娜

非常有用的演示。我确实有一个问题,形象分析师-我希望你看到这个!对于代码部分:

界限= BWBoundaries(BinaryImage);
numberOfBoundaries =大小(边界);
对于k = 1: numberOfBoundaries
这个乐谱=界限{k};
情节(此北福克(:,2),这张(:,1),'G','LineWidth',2);
结束
搁置;

有可能在边界上画出10个等距点吗?它们的顺序是顺时针还是逆时针?

Richi

非常好,救了我至少有一天!

河畔

实际的教程可以在网上观看吗?似乎找不到它。

如果有人对自己的特定图像有任何疑问,他们应该在答案论坛中询问(看上面的菜单)。不要将您的特定问题放在这里作为对此计划的评论。我可以帮助答案。此页面并不意味着讨论论坛。

microF

你好图像分析师,

你的演示正是我正在寻找分析我的荧光图像。然而,我的照片是用12位peltier冷却荧光相机拍摄的,并保存为。tif。因此,我不能显示他们的直方图而没有得到一个错误:
“警告:图像太大,无法适合屏幕;显示67%”

我试图用直方图绘制

plot_size =(0, '拉');
fg1 =图(1);
设置(fg8,'颜色',[1 1],'位置',plot_size,'可见','开');
[pixelCount grayLevels] = imhist(原始图像);
酒吧(Pixelcount);标题('orginimage的直方图');
xlim([0灰度(结束)]);

但它没有帮助。我真的很欣赏任何帮助和评论。

干杯
microF

这个演示非常有用.....我的项目是用衍射光栅计算波长,所以我们得到的图像将是一系列的圆点,我们应该找到两个连续点之间的距离.......有了这个团,我可以找到这些点但是如何找到这些点的中心??????请帮助我任何人…我将非常感激......泰提前

史蒂文

谢谢你给我们展示了一个基本的演示。它帮了大忙!

MML

感谢分享这个演示。这为初学者提供了一个很好的例子。

MML

克里斯蒂,当你改编它时,你让它在彩色图像中读取,即使它看起来不像。这样做来证明:[rows columns NumberOfColorChannels] = size(yourImage)。在调用imread()之后使用rgb2gray()将彩色图像转换为灰度图像。

嘿,图像分析,

对不起,我试图发送这作为一个消息,但一直得到一个错误的网站。无论如何,我使用您的BlobsDemo来找到叶片表面的面积追踪到一张图表纸。代码没有问题,将其转换为具有清晰定义的叶子和没有图形纸网格的二进制图像,但当它试图标记每个blob时,我得到以下错误:

???使用==> iptcheckinput时出错
函数BWLABEL期望它的第一个输入,BW
是二维的。

错误在==> bwlabel在67
iptcheckinput(BW, {'logical' 'numeric'}, {'real',
“二维”、“nonsparse},…

==> Leafarea在48的错误
labeledImage = bwlabel(binaryImage, 8);%的标签
每个Blob都可以进行测量

当它说图像不是二维的时候是什么意思?

谢谢你的帮助,

克里斯蒂

我发现你的演示对我的工作非常有用。谢谢你!

Zaidan.

对于初学者来说,这是非常好的信息

瑞安

郁金香

Syahrul,它确实分为几个地区 - 每个硬币是一个不同的区域。你怎么能在没有二进制图像的情况下标记一些东西?你不能,但是为什么你想避免标签,即使你可以吗?

希文,你肯定有彩色图像。您可能将文件名更改为您的图像之一。我的演示使用的Coins.png是一个单色(灰度)图像。

是否有可能在若干区域进行分段,在标签前不是二值化?

拿来

如果有人想问我一个问题,请单击上面的我的姓名,然后单击“联系人”链接。

可以帮助我......为什么我试图运行它时,我在代码中收到错误......在第41- [PIXELCOUNT GRAYLEVELS] = imhist(原始图像); ......这个代码说

(“? ?使用==> iptcheckinput时出错
函数imhist期望它的第一个输入,i或x,是二维的。“)

为什么它说......我只是继续遵循给出的代码,但突然它给出错误

嗨,我非常欣赏这个演示。我修改您的代码与我的图像(血细胞)的流域分段一起工作,结果很好。但是,在图绘制所选单元格的边界后,如何过滤背景?(因此所得到的图像仅显示没有背景的斑点)裁剪工作也很好,但我不想涉及背景。谢谢你!

德国:
你可以在新闻组或答案中问这类问题,而不是作为对人们提交的文件交换的评论。我很乐意在那里回答。

拜托,我需要帮助!!我需要用我的摄像头捕捉一个基本的色卡,然后我需要确定它是什么颜色。Matlab代码分析并给出答案。例子:这张牌是黄色的。你们谁能帮我一下MatLab代码????TKS很多!!!

嗨伙计们!我需要用我的网络摄像头捕捉一个主要颜色卡,然后我需要确定它是什么颜色吗???你们谁能帮我一下MatLab代码????TKS很多!!!

K

谢谢!

K

我应该更彻底阅读代码评论。无需回答。谢谢!

Akbarul.

谢谢你!

杰森

有人能给我灰度图像分割的matlab代码吗?我会非常感激你的

谢莎

你好!

Matlab.Can我很新近你提供一些关于我的问题的帮助吗?
我需要一个代码从一个单一的图像提取对象,并写入提取的对象来分离图像。作为一个例子,如果一个图像由大象和树组成,我想提取这两个对象,并写为独立的图像..

非常酷的代码。

Manhal,我用Photoshop创建一个带12个硬币的图像,它的工作就好了。你必须做错了什么。

Vivek,它是关于这一点的,让你认为这是一个1星?有什么我可以改善它来帮助初学者了解它更好吗?

Manhal

还有一件事,我试图通过添加2个硬币来更改Blobsdemo中使用的图像,但仍然显示我们已经有10个物体......
我应该做些什么改变来让它工作??

演示图像阈值的有用且注释良好的代码。许多人都对图像中的连接组件(包括真实世界的对象)感兴趣,这段代码为此类项目提供了起点。谢谢IA。

安东尼

简单图像分割的优秀演示。在Matlab中的Image Toolbox也是一个很好的介绍。处理连接组件(质心,平均值等)的功能应该非常有用。

j。d。你得找个肤色的模特。我知道这是一个回旋镖,或香蕉形状的簇在HSV颜色空间。您需要定义参数来建模,然后对其进行分割,可能使用3D查找表而不是数学模型,或者如果您能想出公式,则使用数学模型。但我知道,你不能简单地在任何颜色空间中设置高阈值和低阈值,以创建一个选择皮肤颜色像素的框。

你好~我想你可能想问你我该怎么办如果我想认识到人类皮肤的颜色~我想要它的hsv的每个像素值人脸~然后exlude眼睛和嘴的部分~我想要的值作为输入训练神经网络~你能帮我~急. .tq ~

克里斯托弗。是的,还有很多更复杂的图像可以使用,这将更具挑战性。我处理过很多这样的图片。然而,我从我的新闻组帖子中知道,即使是这么简单的代码也会让很多人感到惊讶。谢谢你的建议,不过我还是简单点吧。我有一些颜色的演示,稍微有点挑战性。

嗨,我在我的掌握乳腺癌质量检测的第一步是确定乳房轮廓的感兴趣区域,我需要在这一步骤帮助,因为我不知道如何这样做,如果有任何人可以帮助我
谢谢

我只是尝试一下

有趣的示范ImageAnalyst。幸运的是,“硬币”样本图像具有高对比度内容,允许容易地选择阈值。加上硬币允许“Imil in Imil in”操作执行大多数工作。

有趣的是,在具有更平滑的直方图上看到图像上的结果是有趣的,但这是图像分割变得复杂的地方,我猜......

总之,这是对IPT和数学形态学在图像处理应用程序中提供的功能的一个很好的演示。

大家好,你能给我一个用数学形态学提取建筑物的代码吗?非常感谢

far

嗨,我尝试了你的演示,但它不适用于3D图像。有没有办法解决这个问题?谢谢

与其他用于演示特定工具箱的提交一样,您需要拥有工具箱。如果您没有,您可以购买它,或者自己编写必要的工具箱函数。通常它们是以“im”或“bw”开头的函数。

如果我没有IPT呢?

我刚刚意识到我使用的是Matalb R2007b,而不是R2008。我想这就是问题所在。很抱歉。

非常有用的…伟大的工作…

Yuvaraj.

我有一个问题要问你。我要用我的网络摄像头拍一张房间里有球的照片。现在我如何从背景中分离球(圆形),我想找到球(圆形)的面积。我如何为这个特定的任务编辑你的代码。

吉米-到新闻组里去问。让我们来谈谈这个话题。

吉米

好吧,让我们忘记GUI,我甚至不确定我是否需要使用它。我问我是否可以读取多个图像的原因是,在我修改了代码后,我得到了图像中所有物体的质心。结果是矢量形式[x y]。例如
[29 134]。我想做一个循环遍历其中所有的图像和物体,读取这些测量值。你能给我一个建议吗?谢谢你!

太好了! ! !

吉米,只要在删除第1076-1164行后,就像你想要的任何代码一样粘贴到该应用程序的1076行。然后刚用绿色三角形运行它。您需要所有代码的所有其他代码,因为这是GUI。要选择图像,只需单击其列表框中的名称,就像您使用任何应用程序一样。无法从您处理单击列表框中的任何代码 - 已经为您完成了。只需单击要处理的图像即可单击“分析”按钮,它将仅分析您单击的那些。

吉米

好的,我说你说的图像分析师。我有一些错误。现在我只使用1076 - 1164代码或整个魔法代码吗?另一件事如何从文件夹中选择图像?我需要把它放入代码吗?谢谢你!

Jimmy,只需逐步逐步说明。
1.在Matlab中打开他的魔法代码和我的Blobsdemo代码。
2.将所有Blobsdemo代码复制到剪贴板中。
3.在他的代码中转到AnalyzeSingleImage,当前是第1075行,然后简单地删除所有的函数,这意味着删除第1076 - 1164行。这就像代码的第1070和1071行注释中所说的那样。
4.现在只需粘贴我的BlobsDemo代码。
现在应该可以了。在你认为合适的情况下修改我/你的代码。

吉米

谢谢你的回复,形象分析师。是的,我知道我需要根据阙值等图片做一些修改。我不明白的是如何将这段代码插入AnalyzeSingleImage()。你是否可以在testbest1@yahoo.com上发给我这个例子?谢谢你!

吉米,当然——把代码复制到你自己的程序里。一种方法是将其与MAGIC (//www.tianjin-qmedu.com/matlabcentral/fileexchange/24224)批处理处理。只需拍摄此代码并将其插入他的分析灵络范围()函数。然后,您将能够从文件夹中选择多个图像,然后处理它们。当然,我的代码有几件对硬币图像特别的东西,您必须为您的图像修改几件事,例如阈值等。

吉米

伟大的工作形象分析师,确实非常有用。我想问一个问题:是否有机会同时可以应用于多个图像?如果有怎样才能完成。谢谢你!

托马斯,这不是我代码中的错误。sprint()不是一个函数——ParseInputs()应该调用sprintf()。regionprops()和ParseInputs()是Mathworks的代码,不是我的。我搜索了ParseInputs的R2008b版本,它不再有sprint(),所以他们已经修复了那个错误。

对不起,我无法用每个先前版本的Matlab测试这个。我知道它肯定适用于R2008A和之后。因为你已经几年后,我建议你获得最现代化的matlab版本。

不适合我:

跑步blobsdemo.m ...
???未定义的命令/功能'sprint'。

错误在==> regionprops>ParseInputs at 878
msg = sprint('此测量不是字符串:“%d”。“,列表{k});

==> regionprops在114处出错
[L, requestdstats] = ParseInputs(官方统计数据,varargin{:});

我有:

MATLAB版本7.1.0.246(R14)服务包3
和IPT

我们

经验丰富的ML用户和高级CSSM CITIZEN是一个优秀和异常评论的图像处理演示......

我做的一些变化:
- 把它放入一个函数
->不需要坏的CLEAR ALL…
- 使图尺寸变小 - 和 -
-在演示的开始/结束处打开/关闭ECHO
>让用户能够在运行时享受评论…

只是几个想法
我们

更新

1.6.0.0

更新R2015A。

1.5.0.0.

重新命名了主要标题和稍微改变了描述。

1.4.0.0

描述中的拼写校正。

1.3.0.0

更新描述,并更改标签图像的显示方式。

1.1.0.0.

给每个blob添加标签编号。提取每个斑点到一个单独的图像。