1. 程式人生 > >halcon學習筆記——(12)影象分割

halcon學習筆記——(12)影象分割

轉自:http://www.cnblogs.com/hanzhaoxin/archive/2013/01/08/2851925.html

一,基本的影象通道知識

在影象處理中有一個很重要的概念叫影象通道,在RGB色彩模式下就是指那單獨的紅色、綠色、藍色部分。也就是說,一幅完整的影象,是由紅色綠色藍色三個通道組成的。他們共同作用產生了完整的影象。

    一幅完整的影象,紅色綠色藍色三個通道缺一不可。即使影象中看起來沒有藍色,只能說藍色光的亮度均為0,但不能說沒有藍色通道存在

    “存在、亮度為零”和“不存在”是兩個不同的概念。     一幅影象,如果關閉了紅色通道,那麼影象就偏青色。如果關閉了綠色通道,那麼影象就偏洋紅色。如果關閉了藍色通道,那麼影象就偏黃色。
這個現象再次印證了反轉色模型:紅色對青色、綠色對洋紅色、藍色對黃色。

    如果察看單個通道,發現每個通道都顯示為一幅灰度影象(不能說是黑白影象)。某個通道的灰度影象中的明暗對應該通道色的明暗,從而表達出該色    光在整體影象上的分佈情況。由於通道共有3個,所以也就有了3幅灰度影象。

    通道中的純白,代表了該色光在此處為最高亮度,亮度級別是255

 通道中的純黑,代表了該色光在此處完全不發光,亮度級別是0  介於純黑純白之間的灰度,代表了不同的發光程度,亮度級別介於1至254之間。  灰度中越偏白的部分,表示色光亮度值越高,越偏黑的部分則表示亮度值越低。  現在可以明白為何通道用灰度表示了吧?因為通道中色光亮度從最低到最高的特性,正符合灰度模式那種從黑到白過渡的表示。正是因為灰度的這種特性,使得它在以後還被應用到其它地方。通道中的灰度,與顏色調板的灰度滑塊是對應的。

二,單通道影象分割 
1閾值分割 
全域性閾值,區域性閾值法,直方圖自動閾值(自適應閾值)

指定全域性閾值 

threshold( Image: Region: MinGray, MaxGray)  //人工設定閾值

區域性閾值法,後面再加以描述

直方圖自動閾值(自適應閾值) 

auto_threshold( Image: Region:Sigma:)
//自動閾值輸入必須是是單通道影象,會有多閾值分割,Sigma用於對灰度直方圖進行高斯平滑,決定了平滑的程度(分割細緻程度),當sigma很大時,灰度直方圖基本會被平滑為只剩下一個波峰,而分割根據平滑後直方圖的波谷來進行的,Sigma小,分割的越細緻。

image

三,彩色影象的分割 

decompose3
trans_from_rgb(red,green,blue,result1,result2,result3,colortypespace)

四,整理常用的提取簡單結果的函式

使用感興趣區域(Region Of Interesting,ROI)可以進一步縮小定義區域。這樣可以避免處理無關區域,從而減少運算時間

1,設定ROI,方法是用圖形視窗的設定ROI助手,然後手動畫出並插入程式碼 

gen_rectangle1(ROI_0, *****)

2,reduce_domain用於擷取所畫出的ROI 

reduce_domain(fullImage,ROIarea,ReducedImage)

3,通常在threshod後,試用connection選擇出連通區域,然後用面積和形狀選擇法選出自己關注的形狀 

threshold()
connection(Region, OutputRegion)
select_shape(input,output, Requirments....)

五,其他函式:

crop_rectangle1(Image : ImagePart : Row1, Column1, Row2, Column2 : )    
//切出一個矩形區域,Image:輸入的多通道圖片,ImagePart:輸出的多通道圖片