圖像灰度共生矩陣cooc_feature_image.hdev

灰度共生矩陣
灰度共生矩陣定義爲像素對的聯合分佈概率,是一個對稱矩陣,它不僅反映圖像灰度在相鄰的方向、相鄰間隔、變化幅度的綜合信息,但也反映了相同的灰度級像素之間的位置分佈特徵,是計算紋理特徵的基礎。
設f(x,y)爲一幅數字圖像,其大小爲M×N,灰度級別爲Ng,則滿足一定空間關係的灰度共生矩陣爲:
其中#(x)表示集合x中的元素個數,顯然P爲Ng×Ng的矩陣,若(x1,y1)與(x2,y2)間距離爲d,兩者與座標橫軸的夾角爲θ,則可以得到各種間距及角度的灰度共生矩陣(i,j,d,θ)。其中元素(i,j)的值表示一個灰度爲i,另一個灰度爲j的兩個相距爲d的像素對在角的方向上出現的次數。
在計算得到共生矩陣之後,往往不是直接應用計算的灰度共生矩陣,而是在此基礎上計算紋理特徵量,我們經常用反差、能量、熵、相關性等特徵量來表示紋理特徵。
(1) 反差:又稱爲對比度,度量矩陣的值是如何分佈和圖像中局部變化的多少,反應了圖像的清晰度和紋理的溝紋深淺。紋理的溝紋越深,反差越大,效果清晰;反之,對比值小,則溝紋淺,效果模糊。

(2) 能量:是灰度共生矩陣各元素值的平方和,是對圖像紋理的灰度變化穩定程度的度量,反應了圖像灰度分佈均勻程度和紋理粗細度。能量值大表明當前紋理是一種規則變化較爲穩定的紋理。

(3) 熵:是圖像包含信息量的隨機性度量。當共生矩陣中所有值均相等或者像素值表現出最大的隨機性時,熵最大;因此熵值表明了圖像灰度分佈的複雜程度,熵值越大,圖像越複雜。

(4) 相關性:也稱爲同質性,用來度量圖像的灰度級在行或列方向上的相似程度,因此值的大小反應了局部灰度相關性,值越大,相關性也越大。

在halcon中提供了cooc_feature_image算子來計算灰度共生矩陣,

cooc_feature_image(Regions, Image : : LdGray, Direction : Energy, Correlation, Homogeneity, Contrast)
1
Parameters
Regions (input_object) region(-array) → object Region to be examined.
Image (input_object) singlechannelimage → object (byte) Corresponding gray values.
LdGray (input_control) integer → (integer)
Number of gray values to be distinguished ().
Default value: 6
List of values: 1, 2, 3, 4, 5, 6, 7, 8
Direction (input_control) integer → (integer / string)
Direction in which the matrix is to be calculated.
Default value: 0
List of values: 0, 45, 90, 135, ‘mean’
Energy (output_control) real(-array) → (real)
Gray value energy.
Correlation (output_control) real(-array) → (real)
Correlation of gray values.
Homogeneity (output_control) real(-array) → (real)
Local homogeneity of gray values.
Contrast (output_control) real(-array) → (real)
Gray value contrast.
2、 cooc_feature_image ( Regions, Image : : LdGray, Direction : Energy, Correlation, Homogeneity, Contrast ) 計算共生矩陣和推導出灰度特徵值 Direction:灰度共生矩陣計算的方向 Energy:灰度值能量 Correlation:灰度值的相關性 Homogeneity:灰度值的均勻性 Contrast:灰度值的對比度

例程:

  • Calculate a co-occurrence matrix and derive gray value features thereof 計算共生矩陣和推導出灰度特徵值

read_image (Image, ‘mreut’)
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, ‘black’, WindowID)
dev_display (Image)
dev_set_draw (‘margin’)

  • Create a rectangle parallel to the coordinate axes
    gen_rectangle1 (Rectangle1, 350, 100, 450, 200)
    gen_rectangle1 (Rectangle2, 100, 200, 200, 300)
    cooc_feature_image (Rectangle1, Image, 6, 0, Energy1, Correlation1, Homogenity1, Contrast1)
    cooc_feature_image (Rectangle2, Image, 6, 0, Energy2, Correlation2, Homogenity2, Contrast2)

通過對兩個區域的共生矩陣進行對比分析發現,紋理信息在表徵物體是否存在上面還是存在很大的差別。因此在做圖像識別時可以將紋理信息納入到特徵量中 形成特徵樣本庫,最後在進行機器學習獲得最終正確的分類
————————————————
版權聲明:本文爲CSDN博主「不繫之舟913」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lixianjun913/article/details/52228305

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章