主要内容

段图像和使用颜色阈值创建蒙版

这个例子展示了如何细分图像和使用颜色创建一个二进制掩模图像阈值应用。示例部分前台(辣椒)和背景(紫色布)基于颜色值。

彩色图像分割的阈值可以是一个迭代的过程。例如,你可以分割图像在不同的颜色空间因为一个颜色空间可能孤立一个特定的颜色比另一个好。在任何支持的颜色空间,你可以万博1manbetx通过选择一个最初执行自动分割前景或背景区域。然后,您可以通过使用颜色组件控制细化分割提供的应用程序。

这个示例还显示了如何创建一个二进制掩模图像,节省你的工作的结果,和出口MATLAB®代码,使您能够再现分割。

开放的图像颜色阈值

读一本彩色图像到工作区中。

我= imread (“peppers.png”);

从MATLAB将来发布开放颜色阈值。在应用程序选项卡,图像处理和计算机视觉部分,点击颜色阈值

加载图像的颜色阈值的应用程序,单击加载图片,然后选择加载图像从工作区。从工作区导入对话框中,选择工作空间的图像,然后单击好吧

您也可以从命令行打开的应用程序使用colorThresholder函数,指定变量名称的图片:

colorThresholder (im)

选择颜色空间

颜色阈值显示的图像选择一个颜色空间选项卡,点云在这些颜色代表图像空间:RGB, HSV, YCbCr和L * a * b *。对于基于颜色的细分,选择的颜色空间提供了最好的分色。使用鼠标,旋转点云表示,看看他们孤立个人色彩。对于这个示例,首先选择YCbCr颜色空间。

部分图片

当你选择一个颜色空间,颜色阈值打开一个新标签,显示图像和一组控制每个颜色分量和点云表示。颜色控制取决于颜色空间。YCbCr色彩空间的应用程序显示三个直方图代表了三个颜色的组成部分:Y组件代表亮度Cb组件代表自民党频谱,Cr组件代表了红绿谱。

访问平移和缩放控件,移动光标的形象。

自动阈值

首先,部分图像使用自动阈值。因为背景(紫色布)接近统一的颜色,段而不是前景对象(辣椒)。你可以反转面具后使用反掩码选择。

定义一个地区使用徒手ROI工具。单击套索图标在轴工具栏的右上角上的形象,画一个ROI的背景。你可以画多个区域。如果你想删除你画一个区域,重新开始,在这一地区的任意位置右击鼠标,选择删除徒手画的

绘图区域后,颜色阈值自动阈值图像基于颜色你选择在该地区吸引了。的Y,Cb,Cr颜色控制改变以反映细分。这种自动阈值并不创建一个干净的背景和前景的细分,尤其是在较低的前景和背景之间的边界。对于这个示例,背景颜色是打火机的底部附近的形象。

完善的自动阈值使用颜色控制

调整自动阈值,使用颜色控制。为每一个Y,Cb,Cr颜色控制,你可以设置值的范围通过拖低和上界的直方图。使用这些颜色控制,可以大大提高前台的分割。

阈值图像颜色值使用点云

另一种方法来选择一个范围的颜色是画一个点云的ROI。

在应用程序将来发布,点击重置阈值恢复到原始图像。应用在右下方的窗格中,单击并拖动旋转直到你孤立的点云的颜色你有兴趣的阈值。悬停在点云的ROI并单击按钮在左上角的点云。颜色阈值的三维点云转换成二维表示和激活多边形ROI的工具。画一个ROI的颜色你想段(紫色)。这种方法可以创建一个比最初的自动阈值分割方法。

在另一种颜色空间段图像

段在另一种颜色空间的图片,点击新的颜色空间在应用程序将来发布。在选择一个颜色空间选项卡上,选择HSV颜色空间。

颜色阈值创建一个新的选项卡显示的图像和颜色组件控制HSV颜色空间。在这种颜色空间中,H代表色调,年代代表饱和,V代表值。HSV颜色空间使用的双向旋钮H组件和两个直方图的滑块年代V组件。标签还包含的点云表示图像的颜色。

如在前面的迭代中,您可以使用相同的技术:自动阈值和交互式使用颜色组件的控制,包括点云。当你使用颜色控制,你可以看到进步的分割。在窗格H控制,改变色调的范围通过点击和拖动一个箭头。尝试控制,直到你有一个干净的背景分离前景。你可以清理小瑕疵创建面具后图像使用工具箱函数,如形态学操作符。

创建掩模图像

因为示例分割背景(紫色布)而不是前景对象(辣椒),交换的前景和背景点击反掩码

查看二进制掩模图像通过点击显示二进制在应用程序将来发布。

导出的结果

在工作区中保存面具。在将来发布,点击出口并选择导出图片

在出口到工作区对话框中,指定变量名称的二元掩模图像。你也可以保存原始输入RGB图像和原始图像的分割版本。

保存所需的MATLAB代码重现分割,点击出口并选择导出功能。颜色阈值打开MATLAB编辑器创建的代码分割。保存代码,点击保存在MATLAB将来发布编辑。您可以运行这段代码,通过RGB图像,以编程方式创建相同的面具图像。

函数[BW, maskedRGBImage] = createMask (RGB)% createMask阈值从colorThresholder应用RGB图像使用自动生成的代码。% (BW, MASKEDRGBIMAGE] = createMask (RGB)阈值图像RGB使用%从colorThresholder应用。色彩和自动生成的代码%范围内设置每个通道的色彩应用。在BW %分割掩模返回,面具和复合%在maskedRGBImage返回原始RGB图像。%自动生成colorThresholder应用在01 - 1月- 2023% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -%将RGB图像转换为选择的颜色空间I = rgb2hsv (RGB);%定义通道1基于直方图的阈值设置channel1Min = 0.734;channel1Max = 0.921;%定义通道2基于直方图的阈值设置channel2Min = 0.334;channel2Max = 1.000;%定义通道3基于直方图的阈值设置channel3Min = 0.000;channel3Max = 0.868;%基于直方图阈值选择创建蒙版sliderBW =(我(::1)> = channel1Min) &(我(:,:1)< = channel1Max) &(我(::2)> = channel2Min) &(我(:,:2)< = channel2Max) &(我(::3)> = channel3Min) &(我(:,:,3)< = channel3Max);BW = sliderBW;%反掩码BW = ~ BW;%初始化输出掩盖图像基于输入图像。maskedRGBImage = RGB;%设置背景像素,BW假为零。maskedRGBImage (repmat (~ BW, [1 1 3])) = 0;结束

另请参阅

相关的话题