基於python語言 Opencv3例項學習筆記1

2021-08-14 14:37:18 字數 1668 閱讀 8623

在opencv中對的處理一般都會應用到傅利葉變換的概念,其實以前在學習訊號處理時應用到這個概念.一般而言,傅利葉變換的實質是指觀察得到所有的波形都可以由一系列簡單且不同頻率的正弦波疊加而來.但是這個概念應用在影象處理上有什麼用呢?其實影象也是訊號的一種表達形式,我們常見的影象其實就是二維的離散訊號,可以將影象理解為二維矩陣,裡面的元素就是畫素值.,一張原始往往由許多頻率組成,比如說在目標邊緣處畫素值的變換一般比較強,即某乙個畫素點與鄰處畫素點的畫素值差異比較大;或者也有差異小的點.這樣,我們先來理解兩個概念:

這裡我選用了一張測試,直觀的展示一下實驗結果:

from matplotlib import pyplot as plot##安裝方式:pip install matplotlib或者conda install matplotlib(anaconda安裝方式)

img = cv2.imread('/home/pandamax/techfort-pycv/chapter3/test.jpg', 0)##讀入影象的路徑

f = np.fft.fft2(img)#二維傅利葉變換

#fshift = f

fshift = np.fft.fftshift(f)

magnitude_spectrum = 20 * np.log(np.abs(fshift))##幅度譜

#置中row, cols = img.shape

print(row,cols)

crow, ccol = row / 2, cols / 2

fshift[crow - 30: crow+30, ccol - 30: ccol + 30] = 0

f_ishift = np.fft.ifftshift(fshift)#逆變換

img_back = np.fft.ifft2(f_ishift)

img_back = np.abs(img_back)#取模

##繪圖

plot.subplot(221), plot.imshow(img, cmap = "gray")

plot.title("input"), plot.xticks(), plot.yticks()

plot.subplot(222), plot.imshow(magnitude_spectrum, cmap = "gray")

plot.title('magnitude_spectrum'), plot.xticks(), plot.yticks()

plot.subplot(223), plot.imshow(img_back, cmap = "gray")

plot.title("input in jet"), plot.xticks(), plot.yticks()

plot.show()

以下是實驗結果:

其實,總的來說,對影象的傅利葉變換處理是我們理解影象所包含的意義的一種方式,從數學角度來直觀理解各個畫素與畫素之間的關係.從而經過分析,我們可以實現其他的影象操作.

不同版本的python共用乙個opencv

相關參考 unzip opencv 3.3.0.zip cd opencv 3.3.0 cmake d with gtk 2 x on d cmake install prefix usr local make j8 make j8表示開8個執行緒來進行編譯 make install 編譯完成之後o...

基於python語言,自動生成文章摘要(中文)

廢話少說,直接上 coding utf 8 import jieba,copy,re,codecs from collections import counter summary pyhanlp.hanlp.extractsummary text,3 print summary print join...

python 語言 Python語言介紹

python語言介紹 一 計算機的語言介紹 如果我們想操作計算機,要讓計算機能聽懂我們說的話,但是因為計算機的組成原因,計算機只能理解二進位制,所以,如果我們想要操縱計算機完成我們下達的任務,就必須用計算機能聽懂的語言。1.機器語言 機器語言是用二進位制進行編寫的,可以直接呼叫計算機硬體,計算機能夠...