2019年5月8日 星期三

s1043331的作業3


摘要

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

使用環境

  • windows10
  • python 3.6.4
  • opencv 3.4.1
  • pyqt5

程式功能

從檔案路徑選取圖片,計算並呈現出輸入圖片的離散傅立葉轉換的頻譜與相位角,並可將輸出圖片儲存

執行結果

可用選擇圖片的功能從檔案路徑選取圖片
可選取欲輸出的部分(只有頻譜)
可選取欲輸出的部分(原圖+相位)
可選取欲輸出的部分(原圖+頻譜+相位)

s1051423的作業2

一、題目: 
撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可) ,利用 Sobel Operators 偵測圖像邊緣,並以邊緣偵測為基礎(如彩色圖像針可先將圖片 由 RGB 轉換至 HIS 或 YUV, YCbCr 等色彩空間,只需對亮度 Channel I 或 Y 處理,再 轉回 RGB 即可),設計一個類似素描線條自畫像程式。

二、環境: 
MS Window 10
Visual Studio 2017
OpenCV 3.4.0


三、說明: 
1. 載入影像
    Mat src = imread("pic.jpg", CV_LOAD_IMAGE_GRAYSCALE);

2. 去除雜訊使圖片平滑

    GaussianBlur(src, src, Size(3, 3), 0, 0);

3. 找邊緣(X軸和Y軸各進行一次)

    void Sobel(InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize=3, double scale=1, double delta=0, int borderType=BORDER_DEFAULT)

4. 計算輸入圖各像素,並將結果轉成8位元圖(X軸和Y軸各進行一次)
    void convertScaleAbs(InputArray src, OutputArray dst, double alpha=1, double beta=0)

5. 將X軸和Y軸分析邊緣的影像結合

    addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, dst1);

6. 將影像二值化(以128做為閥值)

    threshold(dst1, dst2, 128, 255, THRESH_BINARY_INV | THRESH_OTSU);

7.輸出影像
   imshow("origin", src);
   imshow("Sobel_1", dst1);
   imshow("Sobel_2", dst2);

四、實作: 

                                      原圖

                                   找出邊緣之後                                                                             

                         二值化之後的最後結果

S1041538的作業三

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

二、開發環境
Windows 10、Python 3.4.6、Opencv 4.0.0、matplotlib 3.0.3

三、特殊程式片段
np.fft.fft2:進行傅立葉轉換的運算
np.fft.fftshift:將轉換結果作移頻的動作


四、成果截圖


s1051670,作业3

一.作业要求

请撰写一个程式,读取一张256色灰阶图像,计算输入图的离散傅里叶转换结果,并将频谱大小与相位角度各以灰阶256色图像方式呈现

二.使用环境

windows 10
python 3.6.8
opencv-python 4.0.0
pycharm 2019.1
matplotlib 3.0.1

三.使用说明

使用cv2.dft()进行傅里叶转换
使用np.fft.fftshift()进行移频
使用cv2.magnitude()得到频谱图
使用cv2.shape()的到相位图

四.结果说明

2019年5月7日 星期二

1051515 作業3

一、作業要求

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

二、使用環境

  • Windows 10
  • Python 3.7
  • OpenCV 3.4
  • Matplotlib 3.0.1
三、撰寫架構
  1. 輸入檔名將檔案讀入
  2. 透過np.fft.fft2()對圖片做傅立葉轉換
  3. 再者透過np.fft.fftshift()對步驟(2)的結果做移頻
  4. 並且透過subplot將結果印出
  5. 將其做反向操作,先移頻在做反向傅立葉轉換已得到原圖
四、執行方式
輸入要做傅立葉轉換的圖片名稱(或是完整路徑)

輸入錯誤黨名時會跳出防呆



輸入成功後會跳出傅立葉轉換後的頻譜圖以及移頻後的圖。
點擊下方儲存即可儲存圖片

儲存圖檔在原資料夾內









s1043325 的作業 3

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

環境與使用套件版本

  • Windows 10
  • Python 3.7.1
    • opencv-python 4.0.0.21
    • PyQt5 5.12 
    • matplotlib 3.0.3

使用方法

Step1. 運行程式

 

Step2. 點擊 Load 按鈕,選擇想要的圖片

 

Step3-1. 點擊 Preview Spectrum Image

 

Step3-2. 點擊 Preview Phase Image

 

Step4. 將圖片儲存於資料夾

 

1051511的作業3

一、作業要求:

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

二、使用的環境:
  • Windows10
  • Python3.6
  • Opencv-3.4
  • Pyqt 5
  • Matplotlib-3.0.1

三、特殊程式片段說明:
      由於以傅立葉轉換成兩種圖頻譜圖與相位角圖。
        
        Spectrogram的部分:
  •  使用cv2.dft()--->DFT傅立葉轉換
  •  使用np.fft.fftshift()--->使用fftshift函数進行移頻操作
  •  使用cv2.magnitude()--->得到頻譜圖
        Phase的部分:
  •  使用cv2.dft()--->DFT傅立葉轉換
  •  使用np.fft.fftshift()--->使用fftshift函数進行移頻操作
  •  使用cv2.phase()--->得到相位圖
四、執行方式:
     以Load按鈕選取想要轉換的圖片,並選取上方的radiobox選擇想要轉換的方式(頻譜or相位譜),透過plot呈
      現, 以plot中的save按鈕進行存檔。

五、執行方式:
  • 初始介面
        
  • Load 256色灰階圖
        

       
  • 選擇Spectrogram,以plot顯示頻譜圖
       
  • 選擇Phase,以plot顯示頻譜圖
       
  • 分別save圖片