图像表示与描述
圖像表示與描述
目標
對目標特征的測量是要利用分割結果進一步從圖像中獲取有用信息,為達到這個目的需要解決兩個關鍵問題:
- 選用什么特征來描述目標(定性)
- 如何精確測量這些特征(定量)
常見的目標特征分為灰度(顏色)、幾何形狀和紋理特征等。
簡單描述
簡單描述符:邊界描述
- 邊界的長度:由輪廓決定
計算圖像內部區域是由4-連通確定,則得到的邊界是8-連通的;如果圖像內部區域是由8-連通確定的,則得到的邊界是4-連通的 - 計算方式:把所有的邊緣點做連線,連線長度即為邊界長度(內邊界)
- 邊界的直徑:邊界上相隔最遠2點的距離,有時也稱為圖像的主軸長度:
Diam(B)=maxi,jD(pi,pj)Diam(B) = max_{i,j}D(p_i,p_j) Diam(B)=maxi,j?D(pi?,pj?)
鏈碼: - 鏈碼用于表示由順序連接的具有指定長度的方向的直線段組成的邊界線
- 方向基于線段的4或8連接,可編碼為0-3或0-7
- 每段的方向使用數字編號方法進行編碼
用這種方法就可以用一串數字組成的鏈碼表示邊界線
鏈碼問題:
- 由于起點的不同,造成編碼的不同
- 由于角度的不同,造成編碼的不同
解決: - 使用鏈碼的差分代替碼字本身
循環差分鏈碼
用相鄰鏈碼的差代替鏈碼,例如:
4-鏈碼 10103322
循環差分為:33133030
計算方式為:
| 0 - 1 = -1(3) | 3 - 3 = 0 |
| 1 - 0 = 1 | 2 - 3 = -1(3) |
| 0 - 1 = -1(3) | 2 - 2 = 0 |
形狀數
定義為最小循環首差鏈碼
如上例 形狀數:03033133
形狀數序號n的定義:形狀數表達形式中的位數。
上例序號為8。對于封閉邊界,序號一定是偶數
曲率
定義弧的曲率為
k=∣ΔαΔs∣,Δα為圓心角,Δs為弧長k = |{\frac{\Delta\alpha}{\Delta s}}|,\Delta\alpha為圓心角,\Delta s為弧長 k=∣ΔsΔα?∣,Δα為圓心角,Δs為弧長
由于數字圖像是離散點,計算曲率需要采用近似:用相鄰邊界線段(描述為直線)的斜率差作為在邊界線交點處的曲率描述子。
如圖交點a處的曲率為:K=k1?k2K = k_1 - k_2K=k1??k2?
簡單描述符
- 區域面積:區域包含的像素數
- 區域重心:
x=1A∑x,y∈Rxy=1A∑x,y∈Ryx = \frac{1}{A}\sum_{x,y\in R}x\\ y = \frac{1}{A}\sum_{x,y\in R}y x=A1?x,y∈R∑?xy=A1?x,y∈R∑?y
區域重心可能不是整數
簡單描述符:區域灰度特性 - 平均灰度:g ̄=∑x,y∈Rf(x,y)\overline{g} = \sum_{x,y\in R}f(x,y)g?=∑x,y∈R?f(x,y)
- 最大灰度,最小灰度,灰度中值
- 灰度方差:σ2=1N∑x,y∈R(x?g ̄)2\sigma^2 = \frac{1}{N}\sum_{x,y\in R}(x-\overline{g})^2σ2=N1?∑x,y∈R?(x?g?)2
形狀描述符 - 形狀參數:F=∣∣B∣∣24πAF = \frac{||B||^2}{4\pi A}F=4πA∣∣B∣∣2?,B為區域邊界長度,A為區域面積,圓形F=1,其它F>1
- 圓形性:設邊界上點到區域中心的平均距離μR=1K∑(xi,yi)∈E(R)∣∣(xi,yi)?(x ̄,y ̄)∣∣\mu_R = \frac{1}{K}\sum_{(x_i,y_i)\in E(R)}||(x_i,y_i)-(\overline x,\overline y)|| μR?=K1?(xi?,yi?)∈E(R)∑?∣∣(xi?,yi?)?(x,y?)∣∣
距離方差
σR2=1K∑(xi,yi)∈E(R)(∣∣(xi,yi)?(x ̄,y ̄)∣∣?μR)2\sigma_R^2 = \frac{1}{K}\sum_{(x_i,y_i)\in E(R)}(||(x_i,y_i)-(\overline x,\overline y)||-\mu_R )^2 σR2?=K1?(xi?,yi?)∈E(R)∑?(∣∣(xi?,yi?)?(x,y?)∣∣?μR?)2
則區域圓形性定義為C=μRσR2C = \frac{\mu_R}{\sigma_R^2}C=σR2?μR?? - 形狀描述符計算實例:
計算結果相同,形狀未必相同
歐拉數 - 歐拉數:E = C - H
等于區域聯通數量減去孔的數量
- 上述4個字符的歐拉數分別為:-1,2,1,0
總結
圖像表示與描述II
目標
一般化描述
- 最小包圍矩形(MER)
- 離心率:最長弦A與垂直于A的最長弦B的長度比(主次軸之比)
- 橢圓擬合
F(a→,x→)=a→?x→=ax2+bxy+cy2+dx+ey+f=0F(\overrightarrow a,\overrightarrow x) =\overrightarrow a\cdot \overrightarrow x = ax^2 + bxy + cy^2 + dx + ey + f = 0 F(a,x)=a?x=ax2+bxy+cy2+dx+ey+f=0 - 投影
對區域進行水平投影和垂直投影,投影結果與對應區域大小有關 - 多邊形擬合與D-P算法
先在邊界上任取兩個點,然后找區域邊界線上離兩點對應直線最遠的點,不停找下去,指定符合要求。
不變矩
- 首先定義歸一化的不變矩
圖像f(x,y)f(x,y)f(x,y)的p+qp+qp+q階矩定義為:
mpq=∑(xi,yi)∈RxiPyiPf(xi,yi)m_{pq} = \sum_{(x_i,y_i)\in R}x_i^Py_i^Pf(x_i,y_i) mpq?=(xi?,yi?)∈R∑?xiP?yiP?f(xi?,yi?)
| p=1,q=0 | x方向的重心 |
f(x,y)f(x,y)f(x,y)的p+qp+qp+q階中心距定義為:
μpq=∑(xi,yi)∈R(x?x ̄)p(y?y ̄)qf(xi,yi)\mu_{pq} = \sum_{(x_i,y_i)\in R}(x-\overline x)^p(y-\overline y)^qf(x_i,y_i) μpq?=(xi?,yi?)∈R∑?(x?x)p(y?y?)qf(xi?,yi?)
其中x ̄=m10m00\overline x=\frac{m_{10}}{m_{00}}x=m00?m10??,y ̄=m01m00\overline y=\frac{m_{01}}{m_{00}}y?=m00?m01??,即前面定義的重心。
f(x,y)f(x,y)f(x,y)的歸一化中心矩定義為:
ηpq=μpqμpqγ,γ=p+q2+1,p+q?2\eta_{pq} = \frac{\mu_{pq}}{\mu_{pq}^\gamma },\gamma = \frac{p+q}{2}+1,p+q\geqslant 2 ηpq?=μpqγ?μpq??,γ=2p+q?+1,p+q?2
- 然后定義不變矩
常用的有七個不變矩,即對平移、旋轉和尺度變化保持不變。這些可由歸一化的二階和三階中心距得到:
?1=η20+η02?2=(η20?η02)2+4η112?3=(η30?3η12)2+(3η21?η03)2?4=(η30+η12)2+(η21+η03)2\phi_1 = \eta_{20} + \eta_{02} \\ \phi_2 = (\eta_{20} - \eta_{02})^2 + 4\eta_{11}^2 \\ \phi_3 = (\eta_{30}-3\eta_{12})^2 + (3\eta_{21}-\eta_{03})^2\\ \phi_4 = (\eta_{30}+\eta_{12})^2+(\eta_{21}+\eta_{03})^2 ?1?=η20?+η02??2?=(η20??η02?)2+4η112??3?=(η30??3η12?)2+(3η21??η03?)2?4?=(η30?+η12?)2+(η21?+η03?)2
總結
掌握圖像的最小外接矩形、投影、不變矩等特征,并了解直觀幾何意義
圖像表示與描述實戰演練
目標
使用OpenCV的輪廓描述函數實現區域特征分析
- 找到目標輪廓函數
相關函數(Python)
- D-P法多邊形擬合
- 計算輪廓線長度
- 計算輪廓面積
- 計算輪廓包圍矩形(水平的)
- 計算輪廓包圍矩形(斜的)
- 計算輪廓擬合橢圓
- Hu矩(不變矩)
在此之前需要使用moments計算普通矩
Retval = cv2.moments(array[, binaryImage])- 通過不變矩比較兩個形狀的不同。結果越小越相似
實例:
要求:求出圖中每個目標的周長、面積、擬合多邊形、擬合橢圓和不變矩參數
問題
總結
- 上一篇: OpenCV与图像处理学习十六——模板匹
- 下一篇: 熵的基础知识,特征工程,特征归一化,交叉