顯示具有 s1071533 標籤的文章。 顯示所有文章
顯示具有 s1071533 標籤的文章。 顯示所有文章

2022年5月19日 星期四

s1071533 作業5

    

s1071533 作業5

作業說明

撰寫一個程式將所附圖像flower.jpg的黃色花瓣區域擷顯示出來

開發環境

  • Windows 10
  • Python 3.10.2
  • OpenCV 4.5.5
  • Numpy 1.22.2

執行指令

        python color_segmentation.py 圖片名稱

參數功能

  • [圖片名稱]  輸入圖片位置及名稱

實作流程

        從參數讀取檔案名稱讀入圖片,並將色域從BRG轉換到HSV,使用cv2.inRange()找出黃色部分的Mask,再與原圖片進行bitwise計算,即可得到圖片黃色花朵部分

執行結果

python color_segmentation.py flower.jpg

2022年4月14日 星期四

s1071533 作業4

   

s1071533 作業3

作業說明

(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。
(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。

開發環境

  • Windows 10
  • Python 3.10.2
  • OpenCV 4.5.5
  • Numpy 1.22.2
  • Matplotlib 3.5.1

執行指令

        python dft.py 圖片名稱

參數功能

  • [圖片名稱]  輸入圖片位置及名稱

實作流程

        從參數讀取檔案名稱並且使用灰階方式讀入圖片,進行傅立葉轉換分別取出頻譜大小相位角度數值並表示成灰階圖片,接下來產生Gaussian Low-Pass filter的函數,並乘以頻譜大小,接著做反向傅立葉轉換。

執行結果

python dft.py lennaRGB.tif
                                                           Original image
                                                                          Phase
                                                                    Spectrum
Gaussian Low-Pass filter Spectrum (sigma^2 = 0.01
                                                     Gaussian filter

2022年3月24日 星期四

s1071533 作業3

  

s1071533 作業3

作業說明

        撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE) (a)利用 Sobel Operators 偵測並輸出邊緣成分圖 (b)設計一個類似素描線條的自畫像圖案。(想想:如何使用邊緣偵測所得到的點,結合 成看似素描筆畫出的線條?)

開發環境

  • Windows 10
  • Python 3.10.2
  • OpenCV 4.5.5
  • Numpy 1.22.2

執行指令

        python edge_detection.py 圖片名稱

參數功能


  • [圖片名稱]  輸入圖片位置及名稱

實作流程

        從參數讀取檔案名稱並且使用灰階方式讀入圖片,再分別對垂直以及水平方向做Sobel Operators偵測,並將結果加總,再把得到的圖片黑白反轉便可以得到類似素描的圖片

執行結果

python edge_detection.py lennaRGB.tif





2022年3月10日 星期四

s1071533 作業2

 

s1071533 作業2

作業說明

        撰寫一個程式將一張圖像的(a)整張圖像,(b)中心內切圓區域,旋轉一個角度(逆時針旋 轉 0 度至 359 度):利用一個滑動條(trackbar)控制旋轉角度。

開發環境

  • Windows 10
  • Python 3.10.2
  • OpenCV 4.5.5
  • Numpy 1.22.2

執行指令

        python rotate.py 圖片名稱 -t [圖片旋轉方式]

參數功能

  • [圖片名稱]  輸入圖片位置及名稱
  • [圖片旋轉方式]  輸入A或B選擇圖片的旋轉方式,不輸入則為方式A

實作流程

        從參數讀取檔案名稱並且載入圖片,判斷選擇圖片旋轉的方式,如果是圓形部分作旋轉則製作遮罩擷取出圓形部分以及剩下的部分,並且藉由拖拉條的數值計算出旋轉的矩陣,將旋轉矩陣成以圓形部分再結合剩下部分輸出;如果是整張旋轉就不需要擷取圖形直接旋轉。

執行結果

$ python rotate.py lennaRGB.tif

$ python rotate.py lennaRGB.tif -t B

2022年2月24日 星期四

s1071533 作業1

 

s1071533 作業1

作業說明

        撰寫一個程式讀取一張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入 圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變 每個像素的 R 值。 注意修改後像素值溢位 Overflow 問題(像素值介於 0 與 255 之間)。

開發環境

  • Windows 10
  • Python 3.10.2
  • OpenCV 4.5.5

執行指令

        python operate.py [圖片名稱] [特定數值]

參數功能

  • [圖片名稱]  輸入檔案位置及名稱
  • [特定數值]  輸入欲增加或減少的數值

實作流程

        從參數讀取檔案名稱並且載入圖片,判斷是否為灰階,則判斷RGB數值是否相同,如果是灰階則建立一張新圖片且數值RGB都是從參數輸入的特定數值,如果不是建立一張新圖片只有像素R值是特定數值,最後將原本圖片加上或減去新建立的圖片,並且展示出來。

執行結果

  • python operate.py lennaRGB.tif 100
  • python operate.py lennaRGB.tif -100
  • python operate.py bookGray.jpg 100
  • python operate.py bookGray.jpg -100