名詞解釋題
-
數字影像
數字影像是指由被稱作像素的小塊區域組成的二維矩陣,將物理影像行列劃分后,每個小塊區域稱為像素,
每個像素包括兩個屬性:位置和亮度(或色彩)
-
影像的灰度直方圖
灰度直方圖是關于灰度級分布的函式,是對影像中灰度級分布的統計,灰度直方圖將數字影像中的所有像素,按斬訓度值的大小,統計其出現的頻率,直方圖x軸表示0-255,256個像素值,y軸表示像素值的個數
-
歐式距離,街區距離,棋盤距離
歐氏距離:平面或空間中兩點的直線距離
二維:

N維:

街區距離:兩點在標準坐標系上的絕對軸距之和,(對于二維,街區距離就是兩點沿x方向的距離和沿y方向的距離的和)
二維:

N維:
? 棋盤距離:兩點間沿某標準軸的最大距離,(對于二維,棋盤距離就是兩點沿x方向的距離和沿y方向的距離中最大的那個)
二維:

N維:

-
資訊量與資訊熵
資訊量是隨機事件X中某件事發生的概率的負對數,它是對資訊多少的度量,一句話中的事發生的概率越大,則這句話的資訊量越小(“明天太陽會升起”這句話的資訊量就很小),(體現在機器視覺中,它表示該符號所需的二進制位數,如序列aabbaccbaa,符號a出現的概率為0.5, 符號b出現的概率為0.3,符號c出現的概率為0.2,則a,b,c的資訊量為1,1.737,2.322,總資訊量:5* 1+3* 1.737+2* 2.322=14.855位,表示此字串所需的總二進制位數)(資訊量單位:bit,對應底數為2)
h ( x ) = ? log ? 2 p ( x ) h(x) = - \log_2p( x) h(x)=?log2?p(x)
資訊熵是隨機事件X的資訊量的期望
H ( X ) = E ( h ( x i ) ) = ? ∑ i = 1 n p ( x i ) ? log ? 2 p ( x i ) H(X) = E(h(xi)) =-\sum^n_{i=1} p(xi)*\log_2p( xi) H(X)=E(h(xi))=?i=1∑n?p(xi)?log2?p(xi)
簡答與證明題
-
證明:二維離散灰度影像的均值與其
(傅里葉)頻譜的直流成分成線性關系對于一副長寬為N*N的影像f(x,y)其傅里葉變換為(exp是以e為底的指數函式,j是復數符號,j^2=-1):
F ( u , v ) = 1 N ∑ x = 0 N ? 1 ∑ y = 0 N ? 1 f ( x , y ) e x p [ ? j 2 π ( u x + v y ) / N ] F(u,v)=\frac{1}{N}\sum_{x=0}^{N-1}\sum_{y=0}^{N-1}f(x,y)exp[-j2π(ux+vy)/N] F(u,v)=N1?x=0∑N?1?y=0∑N?1?f(x,y)exp[?j2π(ux+vy)/N]
其頻譜的直流成分為F(0,0),得:
F ( 0 , 0 ) = 1 N ∑ x = 0 N ? 1 ∑ y = 0 N ? 1 f ( x , y ) F(0,0)=\frac{1}{N}\sum_{x=0}^{N-1}\sum_{y=0}^{N-1}f(x,y) F(0,0)=N1?x=0∑N?1?y=0∑N?1?f(x,y)
影像均值:
M E A N = 1 N 2 ∑ x = 0 N ? 1 ∑ y = 0 N ? 1 f ( x , y ) MEAN=\frac{1}{N^2}\sum_{x=0}^{N-1}\sum_{y=0}^{N-1}f(x,y) MEAN=N21?x=0∑N?1?y=0∑N?1?f(x,y)
則頻譜的直流成分是二維離散灰度影像的均值的N倍,故二維離散灰度影像的均值與其(傅里葉)頻譜的直流成分成線性關系 -
高斯拉普拉斯算子是經典的邊緣檢測算子,敘述其實作程序并推導高斯拉普拉斯算子的形式
聽說不考??
-
給出分段線性變換的定義并討論線性變換的斜率引數取值對輸出影像對比度的影響
定義:有時為了更好地調節圖象的對比度,需要在一些亮度段拉伸,而在另一些亮度段壓縮,這種變換稱為分段線性變換,
線性點運算的灰度變換函式形式可以采用線性方程描述,即:s=ar+b,則a為斜率,b為截距
對a,b做以下討論:
① 當a>1時,輸出灰度擴展,影像對比度增大,
②當a=1時,輸出灰度既不擴展也不壓縮,影像對比度不變,
③當0<a<1時,輸出灰度壓縮,影像對比度減小,
④當a<0時,較亮的區域變暗,較暗的區域變亮,若a=-1影像發生反色變換,
-
梯度是灰度影像邊緣檢測的重要工具,將梯度推廣到向量梯度并構造彩色影像邊緣檢測方法,
聽說也不考???
計算題
- 給出Prewitt算子對應模板的公式,對如下圖所示資料計算梯度向量的值(忽略最外側的資料),并
近似計算梯度的模,

?px =
py =
計算px,py梯度:如下圖所示,px如滑動視窗般在矩陣上移動,每移動一次計算出一個數值,實際上計算出的梯度是針對px中心點的梯度,所以原矩陣最外層一圈的數值的梯度無法計算,故px計算過后得到的矩陣會比原矩陣小一圈,py計算程序與之相同,

這里只說px第一個點的計算程序:
?
1
?
(
218
+
217
+
211
)
+
1
?
(
207
+
199
+
189
)
=
?
51
-1* (218+217+211)+1*(207+199+189) = -51
?1?(218+217+211)+1?(207+199+189)=?51
得到tx,ty矩陣(左三列tx,右三列ty):

梯度的模(題目中要求近似,故用絕對值相加,否則用平方加和再開方):
M
=
∣
t
x
∣
+
∣
t
y
∣
M = |tx| + |ty|
M=∣tx∣+∣ty∣
得矩陣:

-
給出歐拉數的計算公式,并計算2018四個字母的歐拉數
(對于此題,我們暫不考慮聯通型別)
對于二維影像,歐拉數E = C - H,其中C為連接體數,H為孔洞數
對于數字2:連接體數為1,孔洞數為0,歐拉數為1
對于數字0:連接體數為1,孔洞數為1,歐拉數為0
對于數字1:連接體數為1,孔洞數為0,歐拉數為1
對于數字8:連接體數為1,孔洞數為2,歐拉數為-1
故2018四個字母的歐拉數分別為1,0,1,-1
對于連接體數,可以參考小寫字母“j”,連接體分別為上方的點和下方的勾,故連接體數為2,孔洞為零,
對于孔洞數,可以參考大寫字母“B”,連接體只有一個就是B本身,但孔洞數為2, -
對于如下圖所示區域邊界的4向鏈碼,歸一化鏈碼和差分鏈碼(以A為起點),


? 四向鏈碼:0010 0033 3232 2212 2101
? 歸一化鏈碼: 對于閉合的邊界,無論我們平移它,得到的鏈碼都是一樣的,但是如果選取的起點不同,那么得 到的鏈碼也會有所不同,這時候我們就要將它歸一化,原理就是把我們得到的鏈碼看成是一個自然數,將鏈碼 回圈寫下去,選取構成的自然數數值最小的那組鏈碼,這個就是歸一化鏈碼(選取長度與原鏈碼相同),上圖的鏈碼循換 0010 0033 3232 2212 2101 0010 0033 3232 2212 2101 0010 0033 3232 2212 2101 歸一化鏈碼為0 0033 3232 2212 2101 001(這個自然數以三個0開頭,最小)
? 差分鏈碼:歸一化鏈碼解決了因為起點坐標不同而編碼不同的問題,但仍有不足,如果我們將邊界旋轉,那么它的歸一化鏈碼也會發生變化,此時我們用差分鏈碼來表示,差分鏈碼的計算方法如圖:

- 給出從RGB彩色模型到HSI彩色模型的轉換公式,并計算RGB顏色空間中(255,240,0)在HSI顏色模型中的取值(如需要,可以用開方,反余弦等函式來表示)
RGB轉HSI公式:
I
=
1
3
(
R
+
G
+
B
)
I = \frac{1}{3}(R+G+B)
I=31?(R+G+B)
S = 1 ? 3 ( R + G + B ) [ m i n ( R , G , B ) ] S=1-\frac{3}{(R+G+B)}[min(R,G,B)] S=1?(R+G+B)3?[min(R,G,B)]
H
=
arccos
?
[
(
R
?
G
)
+
(
R
?
B
)
]
/
2
[
(
R
?
G
)
2
+
(
R
?
B
)
2
+
(
G
?
B
)
2
]
0.5
H=\arccos{\frac{[(R-G)+(R-B)]/2}{[(R-G)^2+(R-B)^2+(G-B)^2]^{0.5}}}
H=arccos[(R?G)2+(R?B)2+(G?B)2]0.5[(R?G)+(R?B)]/2?
將(255,240,0)歸一化:
r
=
R
/
(
R
+
G
+
B
)
;
g
=
G
/
(
R
+
G
+
B
)
;
b
=
B
/
(
R
+
G
+
B
)
r = R / (R+G+B);g = G / (R+G+B);b = B / (R+G+B)
r=R/(R+G+B);g=G/(R+G+B);b=B/(R+G+B)
得(0.515,0.485,0)
帶入得HSI取值為(0.333,1,arccos(0.273/√1.889))
程式設計題
import cv2
import numpy as np
img = cv2.imread('img.png') # 以BGR讀入圖片
cv2.imshow('src',img)
img = img.astype('float64')
kenelx = np.array([[-1,0,1],[-1,0,1],[-1,0,1]]) # 垂直算子
kenely = np.array([[-1,-1,-1],[0,0,0],[1,1,1]]) # 水平算子
prewittx = cv2.filter2D(img,-1,kenelx) # 二維卷積,計算垂直梯度
prewitty = cv2.filter2D(img,-1,kenely) # 二維卷積,計算水平梯度
prewittimg = np.sqrt(np.square(prewittx) + np.square(prewitty)) # 計算梯度的模,絕對值加和是梯度模的近似
# 計算模后img的像素值分布不再是0-255,而可能超過了255,為了回到0-255,需要歸一化
max, min = np.max(prewittimg), np.min(prewittimg)
newimg = (prewittimg-min)/(max-min)*255
newimg = 255 - newimg # 反色操作
newimg = newimg.astype('uint8')
cv2.imshow('new_img',newimg)
cv2.waitKey(0)


轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/232606.html
標籤:其他
上一篇:2020-12-09
