圖像處理(image processing)
用計算機對圖像進行分析,以達到所需結果的技術。又稱影像處理。圖像處理一般指數字圖像處理。數字圖像是指用工業相機、攝像機、掃描儀等設備經過拍攝得到的一個大的二維數組,該數組的元素稱為像素,其值稱為灰度值。圖像處理技術一般包括圖像壓縮,增強和復原,匹配、描述和識別3個部分。
Blob分析(Blob Analysis)在計算機視覺中的Blob是指圖像中的具有相似顏色、紋理等特征所組成的一塊連通區域。Blob分析(Blob Analysis)是對圖像中相同像素的連通域進行分析(該連通域稱為Blob)。其過程其實就是將圖像進行二值化,分割得到前景和背景,然后進行連通區域檢測,從而得到Blob塊的過程。簡單來說,blob分析就是在一塊“光滑”區域內,將出現“灰度突變”的小區域尋找出來。
舉例來說,假如現在有一塊剛生產出來的玻璃,表面非常光滑,平整。如果這塊玻璃上面沒有瑕疵,那么,我們是檢測不到“灰度突變”的;相反,如果在玻璃生產線上,由于種種原因,造成了玻璃上面有一個凸起的小泡、有一塊黑斑、有一點裂縫,那么,我們就能在這塊玻璃上面檢測到紋理,經二值化(Binary Thresholding)處理后的圖像中色斑可認為是blob。
而這些部分,就是生產過程中造成的瑕疵,這個過程,就是Blob分析。Blob分析工具可以從背景中分離出目標,并可以計算出目標的數量、位置、形狀、方向和大小,還可以提供相關斑點間的拓撲結構。在處理過程中不是對單個像素逐一分析,而是對圖像的行進行操作。圖像的每一行都用游程長度編碼(RLE)來表示相鄰的目標范圍。這種算法與基于像素的算法相比,大大提高了處理的速度。
適用范圍
針對二維目標圖像和高對比度圖像,適用于有無檢測和缺陷檢測。常用于二維目標圖像、高對比度圖像、存在/缺席檢測、數值范圍和旋轉不變性需求。
顯然,紡織品的瑕疵檢測,玻璃的瑕疵檢測,機械零件表面缺陷檢測,可樂瓶缺陷檢測,藥品膠囊缺陷檢測等很多場合都會用到blob分析。
另一方面,Blob分析并不適用于以下圖像:
1.低對比度圖像;
2.必要的圖像特征不能用2個灰度級描述;·
3.按照模版檢測 (圖形檢測需求)
主要處理技術
Blob分析主要內容包括但不限于以下幾點:
(1)圖像分割:將圖像中的目標和背景分離。
(2)去噪:消除或減弱噪聲對目標的干擾。
(3)場景描述:對目標之間的拓撲關系進行描述。
(4)特征量計算:計算目標的2-D形狀特征。
圖像分割(Image Segmentation)
因為 Blob分析是一種對閉合目標形狀進行分析處理的基本方法。在進行Blob分析以前,必須把圖像分割為構成斑點(Blob)和局部背景的像素集合。Blob分析一般從場景的灰度圖像著手進行分析。在Blob分析以前,圖像中的每一像素必須被指定為目標像素或背景像素。典型的目標像素被賦值為1,背景像素被 賦值為0。有多種技術可將圖像分割為目標像素和背景像素。這些技術包括:二元閾值(Binary Thresholding)、空間量化誤差(Spatial~ mtization Error)、軟件二元閾值和像素加權(SoftBinary Thresholding and Pixel Weighting)、相關閾值(Relative Thresholds)、閾值圖像(Threshold Image)。
圖像分割是圖像處理的一大類技術,在Blob分析中擬提供分割技術包括:直接輸入、固定硬閾值、相對硬閾值、動態硬閾值、固定軟閾值、相對軟閾值、像素映射、閾值圖像。其中固定軟閾值和相對軟閾值方法可在一定程度上消除空間量化誤差,從而提高目標特征量的計算精度。
自動全局閾值分割方法一:
計算直方圖;
尋找出現頻率最多的灰度值;
在threshold中使用與最大值有一定的距離的值作為閥值;
halcon代碼實現:
gray_histo(Image,Image,AbsoluteHisto,RelativeHisto)
PeakGray := sort_index(AbsoluteHisto)[255]
threshold(Image,Region,0,PeakGray -25)
自動全局閾值分割方法二:
多次迭代平滑;
查找兩個波峰;
使用threshold找到兩波峰之間的最小值
bin_threshold(Image,Region)
常用圖像分割算子:
threshold:全局閾值二值化
bin_threshold:自動閾值二值化
dyn_threshold:本地閾值二值化
watersheds:分水嶺
連通性分析(Connectivity Analysis)
當圖像被分割為目標像素和背景像素后,必須進行連通性分析,以便將目標圖像聚合為目標像素或斑點的連接體。
連通性分析的三種類型如下:
*全圖像連通性分析(Whole Image ConnectivityAnalysis)在全圖像連通性分析中,被分割圖像的所有的目標像素均被視為構成單一斑點的像素。即使斑點像素彼此并不相連,為了進行Blob分析,它們仍被視為單一的斑點。所有的Blob統計和測量均通過圖像中的目標像素進行計算;
*連接Blob分析(Connected Blob analysis) 連接Blob分析通過連通性標準,將圖像中目標像素聚合為離散的斑點連接體。一般情況下,連接性分析通過連接所有鄰近的目標像素構成斑點。不鄰近的目標像素則不被視為是斑點的一部分;
*標注連通性分析(Labeled Connectivity Analysis) 在 機器視覺應用中, 由于所進行的圖像處理過程不同,可能需對某些已被分割的圖像進行Blob分析,而這些圖像并未被分割為目標像素和背景像素。例如:圖像可能被分為四個不同 像素集合,每一集合代表不同的像素值范圍。這類分割稱為標注連通性分析。當對標注分割的圖像進行連通性分析時,將連接所有具有同一標注的圖像。標注連通分析不再有目標和背景的概念。
BLOB分析之圖一
形態學操作:形態學操作的目的是去除噪聲點的影響。
特征值計算:對每個目標進行特征量計算,包括面積、周長、質心坐標等特征。
特征提取
1)區域特征
面積area,力矩Moments,平行于主軸的最小矩形smallest_rectangle1,任意方向的最小矩形smallest_rectangle2,
最小圓形smallest_circle,convexity:凸包面積,contlength:區域邊界長度
形狀特征roundness,circularity,compactness,rectangularity
2)灰度特征
簡單灰度值特征:區域的平均灰度值
區域的最小和最大灰度值
BLOB分析之圖二
場景描述:對場景中目標之間的拓撲關系進行描述。
分析過程
Blob分析的主要過程(常用套路):
獲取圖像->分割圖像(區分前景像素和背景像素)->特征提取(比如面積、重心、旋轉角度等)
halcon代碼實現:
threshold(Image, BrightPixels,120,255)
connection(BrightPixels,Particles)
area_center(Particles,Area,Row,Column)
Blob分析拓展
在實際應用中,需要處理更多步驟,因為很多實際因素,目標信息很難處理。比如圖像中有很多雜斑(很難提取目標位),光照不均等。
還有Blob分析需要后期處理。比如將特征信息轉換成實際坐標信息,顯示目標物等。
獲取圖像->應用ROI->定位ROI->矯正圖像->圖像預處理->動態獲取分割參數->分割圖像->處理區域->特征提取->將像素坐標轉換到世界坐標->結果顯示或者輸出
圖像預處理常用算子:
mean_image:均值濾波
gauss_image:高斯濾波
median_image:中值濾波
動態獲取分割參數常用算子:
gray_histo_abs:灰度直方圖
histo_to_thresh:直方圖二值化
應用舉例
找出圖片的毛刺
進一步對上述"BLOB分析之圖二"進行以下形態學處理及特征值處理,
完整代碼如下:
最終得到結果如下:
-
圖像處理
+關注
關注
27文章
1289瀏覽量
56724 -
計算機視覺
+關注
關注
8文章
1698瀏覽量
45980 -
BLOB
+關注
關注
0文章
13瀏覽量
10139
原文標題:Halcon案例之BLOB分析
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論