主要内容

段图像和使用颜色阈值应用程序创建掩码

此示例演示如何分割图像并使用颜色阈值应用程序。示例将前景(辣椒)从背景(紫色布)分段为基于颜色值。

在里面颜色阈值应用程序,图像分段可以是一个迭代过程。例如,尝试将图像分割在应用支持的几个颜色空间中,因为一个颜色空间可能比另一个颜色更好地隔离特定颜色。金宝app在任何支持的颜色空间中,您可金宝app以通过在前台或背景中选择一个区域来最初执行自动分段。然后,您可以通过使用应用程序提供的颜色组件控件来完善分段。

此示例的最后一部分显示了如何保存工作结果,创建掩码图像,并获取MATLAB®代码用于执行分段的应用。

在颜色阈值中打开图像

将彩色图像读入工作区。

rgb=imread('peppers.png');

打开颜色阈值来自MATLAB TOOLSTRIP的应用程序。在“应用”选项卡上,在“应用”选项卡中图像处理与计算机视觉部分,点击颜色阈值.

将图像加载到颜色阈值应用程序。点击加载映像,然后选择从工作区加载图像。在“从工作区”对话框中,从工作区中选择图像,然后单击好吧.

您还可以使用从命令行打开应用程序ColorthResholder功能,指定图像的名称:彩色阈值(rgb);. 您还可以获取图像在颜色阈值应用程序中获取实时图像.

这个颜色阈值应用程序在屏幕上显示图像选择一个颜色空间选项卡,其中点云表示以下颜色空间中的图像:RGB、HSV、YCbCr和L*a*b*. 对于基于颜色的分割,请选择提供最佳颜色分离的颜色空间。使用鼠标旋转点云表示,以查看它们如何隔离各个颜色。使用颜色阈值应用程序可以是一个迭代过程,在实现满足您需求的分割之前,尝试几个不同的颜色空间。对于本例,通过选择YCbCr颜色空间开始该过程。

在彩色阈值应用程序中分割YCbCr图像

选择颜色空间时,App会打开一个新选项卡,显示图像以及每个颜色分量和点云表示的一组控件。颜色控制取决于颜色空间。对于YCBCR颜色空间,颜色阈值应用程序显示三个直方图,代表三个颜色组件:Y组件代表亮度,Cb分量表示蓝黄色光谱,而组件代表红绿谱。

要探索图像,请在图像上移动光标以访问平移和缩放控制。

自动阈值

首先,利用自动阈值法对图像进行分割。因为背景颜色(紫色的布)接近统一的颜色,分割它而不是前景对象(辣椒)。属性可以将掩码反转反转遮罩选择。

使用徒手ROI工具定义区域。单击按钮在图像的左上角,在背景上绘制ROI。你可以画多个地区。

在绘制区域后颜色阈值应用程序自动阈值的图像基于您在您绘制的区域中选择的颜色。这个Y,Cb, 和颜色控制改变以反映分割。此自动阈值处理不会创建背景和前景的清洁分割,尤其是在前景和背景之间的下边界处。对于此示例,背景颜色在图像的底部附近较轻。如果要删除您画出的区域并重新开始,请右键单击该区域的任意位置并选择删除手绘.

使用颜色控件优化自动阈值

要微调自动阈值,请使用颜色控件。每人Y,Cb, 和颜色控件,可以通过拖动直方图中的上下限来设置值的范围。使用这些颜色控件可以显著改善前景的分割。

使用点云的阈值图像颜色值

在YCbCr颜色空间中分割图像的另一种方法是在点云上绘制ROI以选择一系列颜色。

在应用程序工具条上,单击重置阈值恢复到原始图像。在应用程序的右下窗格中,单击并拖动点云进行旋转,直到您隔离出您感兴趣的阈值颜色视图。点击按钮位于点云的左上角。这个颜色阈值应用程序将3-D点云转换为2-D表示,并激活多边形ROI工具。在你想分割的颜色周围画一个ROI(紫色)。该方法比初始的自动阈值方法具有更好的分割效果。

在另一个颜色空间中分割图像

要在其他颜色空间中分割图像,请单击新颜色空间在应用程序工具条中。在里面选择一个颜色空间选项卡,选择HSV颜色空间。

这个颜色阈值应用程序创建一个新选项卡,显示HSV颜色空间的图像和颜色组件控件。在这个色彩空间里,,H代表色调,s代表饱和度和v代表价值。HSV颜色空间使用一个双向旋钮H组件和两个用于sv组件。该选项卡还包含图像中颜色的点云表示。

与上一次迭代一样,您可以使用所有相同的技术:自动阈值和交互式使用颜色组件控件,包括点云。使用颜色控件时,可以看到正在进行的分割。在带有H控制,通过单击并一次拖动一个箭头来更改色调的范围。试验控制,直到您从前景中清洁背景。您可以在使用工具箱功能创建掩模图像后清理小缺陷,例如形态运算符。

使用颜色阈值应用程序创建蒙版图像

该示例的这一部分显示了如何在分段后创建掩模图像。您还可以获得用于创建掩码图像的分段图像和MATLAB代码。

因为该示例分段为背景(紫色布)而不是前景对象(辣椒),通过单击来交换前景和背景反转遮罩.

查看您通过单击创建的二进制掩码图像显示二进制在应用程序工具条上。

在工作区中保存遮罩图像。在遮罩工具条上,单击出口选择导出图像.

在“导出到”工作区“对话框中,为二进制掩码图像指定变量名称。您还可以保存原始输入RGB图像和分段版本的原始图像。

要保存重新创建分段所需的MATLAB代码,请单击出口选择导出功能. 颜色阈值应用程序打开MATLAB编辑器,其中包含创建分段的代码。要保存代码,请单击节省在Matlab编辑器ToolStrip上。您可以运行此代码,将其传递一个RGB映像,以编程方式创建相同的掩码图像。

功能[bw,maskedrgbimage] = createmask(RGB)%使用colorThresholder应用程序自动生成的代码创建掩码阈值RGB图像。%[BW,MASKEDRGBIMAGE]=使用来自ColorthResholder应用程序的%自动生成的代码。色彩空间和%颜色空间每个通道的最小/最大值在%应用并生成二进制掩码BW和复合图像掩码DRGBImage,%显示遮罩BW下的原始RGB图像值。%由colorThresholder应用程序于2016年6月22日自动生成%--------------------------------------------------%转换RGB图像到选择的颜色空间i = RGB2HSV(RGB);基于直方图设置,%定义通道1的阈值Channel1min = 0.713;channel1max = 0.911;%根据直方图设置定义通道2的阈值Channel2min = 0.049;channel2max = 0.971;%根据直方图设置定义通道3的阈值通道3min=0.005;信道3max=1.000;%创建基于所选直方图阈值的掩码sliderBW=(I(:,:,1)>=channel1Min)和(I(:,:,1)<=channel1Max)&...(i(:,:,2)> = channel2min)&(i(:,:,2)<= channel2max)&...(我(::3)> = channel3Min) &(我(:,:,3)< = channel3Max);BW = sliderBW;%反转掩模bw =〜bw;%基于输入图像初始化输出屏蔽图像。maskedrgbimage = RGB;%设置背景像素,其中BW为假到零。maskedRGBImage(repmat(~BW,[13]))=0;结束

另见