主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。

색이진화앱을사용하여상을분할하고마스크만들기

이예제에서는색 이진화앱을사용하여、상을분할하고이진마스크、앱을사용하여、상을만드는방법을보여줍니다。이예제에서는색값을기반으로배경(자주색천)에서전경(피망)을분할합니다。

색 이진화앱에서상분할은반복적과정일수있습니다。예를들어,특정컬러스페이스가다른컬러스페이스보다특정색을더잘분리할수있으므로지원되는여러개의컬러스페이스에서영상을분할해보십시오。지원되는컬러스페이스에서전경이나배경의영역을하나선택하여초기자동분할을수행할수있습니다。그런다음앱에서제공하는색성분컨트롤을사용하여분할을미세조정할수있습니다。

이예제의마지막부분에서는작업의결과를저장하고,마스크영상을만들고,앱에서분할을수행하는데사용한MATLAB®코드를가져옵니다。

색이진화앱에서상열기

컬러상을작업공간으로읽어들입니다。

RGB = imread(“peppers.png”);

Matlab툴스트립에서색 이진화앱을엽니다。앱 탭의상처리및컴퓨터비전섹션에서색 이진화를클릭합니다。

색 이진화앱으로상을불러옵니다。상불러오기를클릭하고작업공간에서상불러오기를선택합니다。작업공간에서가져오기대화상자에서,작업공간에있는상을선택하고확인을클릭합니다。

명령줄에서colorThresholder함수를사용하고colorThresholder (rgb);와같이상의이름을지정하여앱을열수도있습니다。상을수집할수도있습니다(在颜色阈值应用程序中获取实时图像항목참조)。

색 이진화앱이컬러스페이스선택탭에영상을표시하고,더불어이영상을표현하는포인트클라우드를RGB, HSV, YCbCr,L * a * b *컬러스페이스에@ @시합니다。색기반분할을위해색분리가가장잘되어있는컬러스페이스를선택합니다。마우스를사용해포인트클라우드표현들을돌려보면서각각개별색을어떻게분리하는지살펴봅니다。색 이진화앱을사용한분할은반복수행이필합니다。원하는분할결과를얻을때까지여러가지컬러스페이스를시도해보십시오。이예제에서는먼저YCbCr컬러스페이스부터시작해보겠습니다。

색이진화앱에서YCbCr상분할하기

컬러스페이스를선택하면앱에서새탭이열리고영상과함께각색성분에대한컨트롤세트와포인트클라우드표현이표시됩니다。색컨트롤은컬러스페이스에따라달라집니다。YCbCr컬러스페이스에서색 이진화앱은밝기를나타내는Y성분,파란색-노란색스펙트럼을나타내는Cb성분,빨간색-녹색스펙트럼을나타내는Cr성분을세개의히스토그램으로@ @시합니다。

tmout = 0 tmout = 0 tmout = 0 tmout = 0

자동이진화

먼저자동이진화를사용하여상을분할합니다。배경색(자주색천)이균일한색에가까우므로전경객체(피망)대신배경을분할합니다。나중에언제든지마스크반전옵션을사용하여마스크를반전할수있습니다。

직접그리기ROI툴을사용하여역을정의합니다。상의왼쪽위코너에있는버튼을클릭하고배경위에roi를그립니다。역을여러개그릴수있습니다。

역을그리면색 이진화앱이역에선택된색에따라자동으로상을이진화합니다。분할이반되도록YCbCr색컨트롤이변경됩니다。이와같은자동이진화는특히전경과배경사이의하단테두리에서전경과배경을깔끔하게분할하지못합니다。이예제에서는배경색이상의하단부근에서더밝습니다。그린、역을삭제하고다시시작하려면、그린、역의아무곳이나마우스오른쪽버튼으로클릭하고직접그리기삭제를선택합니다。

색컨트롤을사용하여자동이진화미세조정하기

자동이진화를미세조정하려면색컨트롤을사용하십시오。각각의YCbCr색컨트롤에대해해당히스토그램에서하한과상한을끌어서값의범위를설정할수있습니다。색컨트롤을사용하여전경의분할을크게개선할수있습니다。

포트클라우드를사용하여상의색값이진화하기

YCbCr컬러스페이스에서영상을분할하는또다른방법은포인트클라우드위에ROI를그려서색범위를선택하는것입니다。

앱툴스트립에서임계값재설정을클릭하여원본상으로복원합니다。앱의오른쪽아래창에서포인트클라우드를클릭하고끌어서이진화하려는색의보기가분리될때까지회전시킵니다。포트클라우드의왼쪽위코너에있는버튼을클릭합니다。색 이진화앱이3차원포인트클라우드를2차원표현으로변환하고다각형ROI툴을활성화합니다。분할하려는색(자주색)주위에roi를그립니다。이방법은초기자동이진화방법보다나은분할을만들수있습니다。

다른컬러스페이스에서상분할하기

다른컬러스페이스에서상을분할하려면앱툴스트립에서새컬러스페이스를클릭하십시오。컬러스페이스선택탭에서HSV컬러스페이스를선택합니다。

색 이진화앱이상과HSV컬러스페이스의색성분컨트롤을새탭에시합니다。이컬러스페이스에서H는색상(hue)을,年代는채도(饱和)를,V는명도(value)를나타냅니다。HSV컬러스페이스는H성분에이중방향노브를사용하고年代성분과V성분에두개의히스토그램슬라이더를사용합니다。이탭에는상의색을현한포트클라우드도포함되어있습니다。

이전반복에서처럼포인트클라우드를포함하여대화형색성분컨트롤및자동이진화를비롯한동일한기법을모두사용할수있습니다。색컨트롤을사용하면분할이진행되는정도를볼수있습니다。H컨트롤창에서화살을한번에하나씩클릭하고끌어서색상의범위를변경합니다。전경으로부터배경이깔끔하게분할될때까지컨트롤로시도해봅니다。사소한불완전한부분들은모폴로지연산자같은툴박스함수를사용하여마스크영상을만든후에정리할수있습니다。

색이진화앱을사용하여마스크상만들기

예제의이부분에서는분할후에마스크상을만드는방법을보여줍니다。마스크마스크상을만들때사용한matlab코드와분할된상을가져올수도있습니다。

예제에서전경객체(피망)대신배경(자주색천)을분할했으므로마스크반전을클릭하여전경과배경을바꿉니다。

앱툴스트립에서이진通讯录시를클릭하여,생성한이진마스크상을봅니다。

마스크상을작업공간에저장합니다。마스크툴스트립에서내보내기를클릭하고상내보내기를선택합니다。

작업공간으로내보내기대화상자에서이이진마스크상의변수이름을지정합니다。원본입력RGB상과원본상의분할된버전도저장할수있습니다。

분할을다시만드는데필한matlab코드를저장하려면내보내기를클릭하고함수내보내기를선택하십시오。색 이진화앱이matlab편집기를열어서해당분할을생성한코드를` ` `시합니다。코드를저장하려면matlab편집기툴스트립에서저장을클릭하십시오。이코드를실행하고코드에RGB영상을전달하여프로그래밍방식으로동일한마스크영상을만들수있습니다。

函数[BW,maskedRGBImage] = createMask(RGB)使用colorThresholder应用程序自动生成的代码来阈值RGB图像。% [BW,MASKEDRGBIMAGE] = createMask(RGB) thresholds image RGB using%从colorThresholder App自动生成的代码颜色空间中每个通道的最小/最大值百分比设置在% App,结果是一个二进制掩码BW和一个合成图像maskedRGBImage,%,显示掩码BW下的原始RGB图像值。2016年6月22日由colorThresholder app自动生成%------------------------------------------------------将RGB图像转换为所选颜色空间I = rgb2hsv(RGB);根据直方图设置定义通道1的阈值channel1Min = 0.713;channel1Max = 0.911;根据直方图设置定义通道2的阈值channel2Min = 0.049;channel2Max = 0.971;根据直方图设置定义通道3的阈值channel3Min = 0.005;channel3Max = 1.000;根据所选的直方图阈值创建掩码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;结束

참고 항목

Baidu
map