顯示具有 作業三 標籤的文章。 顯示所有文章
顯示具有 作業三 標籤的文章。 顯示所有文章

2020年5月16日 星期六

1063344 影像處理作業 3

一、題目
請撰寫一個程式,讀取一張 256 色灰階圖像(圖像大小適中以免執行時間太久)。計算輸 入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像方式呈現 出。

二、使用環境
 numpy:1.16.4
 Python:3.7.4
 opencv:4.1.0

三、實作方法

1.使用imread讀入影像,
2.使用fft函式做快速傅立葉轉換
3.使用fft.fftshift將其做置中處理
4.使用log取得頻譜,用plt.show將其顯示
5.上一張圖關閉後,使用angle取得相位圖,用plt.show將其顯示

四、實作成果
原圖:

頻譜圖:


相位圖:

2019年5月15日 星期三

1043362 作業三


  1. 作業要求

請撰寫一個程式,讀取一張 256 色灰階圖像。計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256 色圖像方式呈現出。

  1. 環境設置

Operation system: windows10
Virtual environment: Anaconda 4.6.8
Programing language: Python3.6.8
Library version: Opencv 3.4.1

  1. 作品說明

傅立葉轉換在影像處理上可幫助我們提取空間域上的幾何特徵。
np.fft.fft2()
這個函數可以做快速傅立葉轉換(輸出如圖二),可以看到結果並不理想,這是因為傅立葉變換後的DC-value超出輸出的範圍,所以我們需要對其值取log將其bound在0~255之間(輸出如圖三)。
np.angle()
ϕ=atan(實部 / 虛部)為相位的公式且剛好numpy包裡面的angle函數可以針對參數的實數及虛數部分算出其相位。

  1. 結果展示

(圖一)
(圖二)
(圖三)
(圖四)

s1053315作業三

一、作業要求:

請撰寫一個程式,讀取一張 256 色灰階圖像。計算輸入圖的離散傅立葉轉換結果,並
將頻譜大小與相位角度各以灰階256 色圖像方式呈現出。


二、使用環境/語言:

  • Windows 10
  • Spyder ( Python3.5 )
  • Python
  • Opencv 3.4.1
三、特殊程式片段註解:
np.fft.fft2()
np:輸入影像,為灰度影像
fft:決定了輸出陣列的大小,如果它大於輸入影象的大小,則輸入影象在計算FFT之前填充了0.如果它小於輸入影象,輸入影象將被裁剪。
如果沒有引數傳遞,輸出陣列的大小將與輸入相同。


四、環境設置介紹:

       首先下載 Anaconda 後將其路徑加入到path,以免python無法正確運行。
Anaconda cloud server中搜尋要安裝的package
在cmd中輸入: anaconda search opencv



      挑選一個覺得順眼以及符合系統需求的package 輸入:conda install -c https://conda.anaconda.org/package名稱 下載完畢開啟Spyder即可

五、執行結果:







2019年5月12日 星期日

1051432 作業三

一、作業要求
請撰寫一個程式,讀取一張 256 色灰階圖像 。計算輸入圖的離散傅立葉轉換結果 ,並將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出。

二、作業環境:
  • windows10
  • visual studio 2017  
  • opencv 3.4.1
三、程式架構:
  1. 先用copyMakeBorder()對圖片做邊界擴展
  2. 將圖片merge()變為多通道的Mat
  3. dft()進行傅立葉轉換
  4. split()取出實數部分
  5. 取出實數部分,並用magnitude()計算出振幅、用phase()計算出相位角度
  6. normalize()將值進行標準化
  7. 將圖切成四個部分,再用temp對它們進行互換
  8. 輸出頻譜圖、相位圖
  9. idft()將圖片用逆傅立葉轉換回來
  10. 輸出逆傅立葉轉換的圖
四、成果展示:
  • magnitude為頻譜圖
  • phase為相位圖
  • ifft為逆傅立葉轉換的圖

2019年5月11日 星期六

s1051435-作業3

一、作業題目:

請撰寫一個程式,讀取一張 256 色灰階圖像。 計算輸入圖的離散傅立葉轉換結果, 並
將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出。

二、實作環境:

VisualStudio2017+OpenCV 3.4+Win10

三、執行方式:

1.讀取圖片轉灰階
2.使用getOptimalDFTSize()找到最佳的大小,將原圖的邊界擴展至此大小,並用padding以0補充之
3.創建planes[]儲存圖像實數和儲存圖像虛數
4.使用merge(planes,2,complexImg); 將planes[0]和planes[1]的實數與虛數部分全部儲存至complexImg當中
5.對complexImg做dft並使用split將complexImg的實數虛數部分分開
6. 將實數與虛數部分做arctan處理得到圖片的phase angle,然後做頻譜轉換,並重新編排將原點移至影像中央以向外做排列
7.使用idft逆轉換得到原圖

四、執行結果: