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

2022年6月9日 星期四

s1083327 作業7

 1.作業說明:

請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),

計算出所附圖像(共三張)每張圖像中圍棋個數。

2.開發環境:

Windows 10 + Visual Studio 2019 + Open CV 4.5.5  

3.實作方法:

1.讀入三張圖片  

2. 使用 GaussianBlur模糊細節 

3. 將圖片resize成1296X864 

4.將圖片二值化 

5. kernel 藉由 getStructuringElement獲得,形狀為橢圓 

6.使用 erode分離棋子 

7.使用 dilate將過度侵蝕的部分填上 

8.使用 findContours檢測物體輪廓,得到棋子數量 

9.顯示結果 

4.執行結果






2022年6月2日 星期四

s1083327 作業6

1.作業說明:

附件中為三張利用將晶片高度以色彩視覺化後的圖片。

請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。

部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)

2.開發環境:

Windows 10 + python 3.8 + Open CV 4.5.5  

3.實作方法:

1.讀入圖片 

2. 將圖分成B, G, R 三個channels 

3.分別對三個 channels 做 Run-length encoding 

4.將三個channels RLE 過後的值存進 np array 

5. 將 np array 存成 txt檔

6.用get_size取得檔案大小並計算壓縮率

6.對三張圖片重複執行以上步驟

7.計算平均壓縮率

4.執行結果







2022年5月14日 星期六

s1083327 作業5

1.作業說明:

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

2.開發環境:

Windows 10 + Visual Studio 2019 + Open CV 4.5.5  

3.實作方法:

1.輸入圖片名稱與格式 

2. COLOR_BGR2HSV 讀取HSV圖片 

3.使用 inRange()得到二值化的mask 

4.使用 bitwise_and()得到黃花部分 

5.顯示處理後的圖 


4.執行結果

原圖:


二值化:

結果:



2022年4月13日 星期三

s1083327 作業4

1.作業說明:

 請撰寫一個程式,讀取一張256色灰階圖像。

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

2.開發環境:

Windows 10 + Visual Studio 2019 + Open CV 4.5.5  

3.實作方法:

頻譜圖、相位角圖: 

1.輸入圖片名稱與格式 

2.讀取灰階圖片 

3.將圖片Padding 

4. 先使用 getOptimalDFTSize()拓寬圖片 

5. 使用copyMakeBorder()填充圖片 

6.使用dft()做傅立葉轉換 

7. 用split()分割出實數與虛數部分 

8. 使用 magnitude()和 phase()做出未處理的頻譜圖和相位角圖 

9.頻譜圖和相位角圖交換象限 

10.將頻譜圖 +Scalar::all(1) 

11.頻譜圖代入log()和 normalize() 

12.顯示頻譜圖 

13.將相位角圖代入 normalize() 

14. 顯示相位角圖 

Gaussian low pass filter: 

1.將讀入的圖片代入dft() 

2. 做出Gaussian low pass filter ,d0設為2500

3.將GLPF交換象限 

4.將傅立葉轉換後的圖與GLPF帶入 multiply() 

5.將相乘的圖做idft() 

6.顯示處理後的圖 

4.執行結果

(1)





(2)




2022年3月18日 星期五

s1083327 作業3

 1.作業說明:

撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE)。

(a)利用 Sobel Operators 偵測並輸出邊緣成分圖。

 (b)設計一個類似素描線條的自畫像圖案。

2.開發環境:

Windows 10 + Visual Studio 2019 + Open CV 4.5.5  

3.實作方法:

1.輸入圖片名稱與格式 2.將圖片放到 GaussianBlur 裡 3.使用Sobel 取得x方向梯度 4. 使用Sobel 取得y方向梯度 5.將取得的梯度用 convertScaleAbs 轉回uint8 6.使用 addWeighted 將x方向和y方向的圖利用權重合併在一起 7. 顯示更改後的圖片 8. 再度使用 addWeighted 將更改後的圖片反白 9.對每個像素的灰階值加50 確保圖中線條之深淺差異並排除過淡的線條 並使用 saturate_cast <uchar>使其值不超過255 10.顯示再度更改後的圖片

4.執行結果

(a)                                                                          (b)


2022年3月7日 星期一

s1083327 作業2

 1.作業說明:

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

2.開發環境:

Windows 10 + Visual Studio 2019 + Open CV 4.5.5  

3.實作方法:

1.輸入圖片名稱與格式 

2.將圖片放到 Rotate function 裡 

3.設立一個滑動條來更改旋轉角度 

4.顯示更改後的圖片 

5.將以原圖中心點半徑100像素的圖存成新圖片 

6.將新圖片放到 Rotate function 裡 

7.設立一個滑動條來更改旋轉角度 

8.將旋轉過後的新圖片的像素改回原圖上 

9.顯示更改後的圖片

4.執行結果

皆為選轉120度

(a):


(b):