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

2022年6月7日 星期二

s1071502 作業7

 一、 作業說明

請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附圖像(共三張)每張圖像中圍棋個數。

a.     請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。

b.    程式不一定可以算出正確棋子數量,越接近正確答案越好!

二、 作業環境

Windows 10

 

OpenCV 4.5.5

 

Visual Studio 2017

 

三、 實作方法

1.讀取圖片,並檢查是否有錯誤。

2.將圖片resize()避免圖片太大超出螢幕範圍。

3.將圖片轉成灰階後進行GaussianBlur消除噪點,並進行threshold。

4.之後進行erode和dilate將各個特徵分開。
5.
最後使用findContours找尋邊緣輪廓。

6.計算輸出獲得的數量和繪製於原圖上。

四、 執行結果


IMG_5702 實際:24 測出:22

IMG_5703 實際:31 測出:29

IMG_5704 實際:31 測出:31

2022年6月1日 星期三

s1071502 作業6

 一、 作業說明

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

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

 

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

二、 作業環境

Windows 10

 

OpenCV 4.5.5

 

Vscode + Python 3.10.4

 

三、 實作方法

1.讀取圖片,並檢查是否有錯誤。

2.將圖檔拆為R、G、B三個data並分別對其做RLE。
3.
做完RLE後將其儲存成.tif形式的檔案。

4.使用getsize取得檔案大小並且計算壓縮率。

四、 執行結果


2022年5月16日 星期一

s1071502 作業5

 一、 作業說明

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

Windows 10

 

OpenCV 4.5.5

 

Visual Studio 2017

 

三、 實作方法

1.讀取圖片,並檢查是否有錯誤。

2.設定黃色的HSV範圍。
3.
將讀取進來的圖片透過cvtColor()轉換成HSV圖。

4.將HSV圖進行Histogram Equalization。
5.
用inRange()計算出黃色部分的遮罩,然後使用morphologyEx()進行去除噪點的操作後建立出Mask。

6.使用bitwise_and()進行圖像合成,並輸出。

四、 執行結果


HSV圖

MASK

結果

2022年4月13日 星期三

s1071502 作業4

 

一、 作業說明

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

(1)   計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。

(2)   對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。

(程式利用課本的frequency filter步驟者可得滿分,在網頁中將每個步驟結果呈現出。直接套用opencv函數得一半分數。)

二、 作業環境

Windows 10

 

OpenCV 4.5.5

 

Visual Studio 2017

 

三、 實作方法

1.讀取圖片,並檢查是否有錯誤。

2.先將圖片進行Padding,使用getOptimalDFTSize()擴展圖片,再用copyMakeBorder()填充。
3.
將Padding完成的圖進行dft()運算,然後再用spilt()將實部虛部分開。

4.用magnitude()計算Magnitude部分,再用Mag()將頻域的圖像重新排列,處理好後輸出。
5.
用phase()計算Phase部分,處理圖像後輸出。

6.使用GaussianLowPassFilter()進行高斯低通濾波,並將影像處理後輸出。

四、 執行結果






2022年3月21日 星期一

s1071502 作業3

 

一、 作業說明

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

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

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

二、 作業環境

Windows 10

 

OpenCV 4.5.5

 

Visual Studio 2017

 

三、 實作方法

1.讀取圖片,並檢查是否有錯誤。

2.利用GaussianBlur將圖片模糊處理(清除雜訊)。
3.
利用Sobel將圖片的x,y邊緣找出並用addWeighted合併。

4.用threshold將圖片黑白對調,產生素描圖。

四、 執行結果

原圖
GrayWithGaussianBlur

Edge
Sketch




2022年3月7日 星期一

s1071502 作業2

 

一、 作業說明

圖像亮度調整

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

二、 作業環境

Windows 10

 

OpenCV 4.5.5

 

Visual Studio 2017

 

三、 實作方法

1.提示使用者進行輸入並檢查錯誤。

2.建立TrackBar並用on_Trackbar1/ on_Trackbar2控制兩種模式。
3.
判斷使用者選擇的模式(1.全圖2.內切圓)並執行相對應的處理。

4.找到中央後使用getRotationMatrix2D算出矩陣值後,用warpAffine旋轉圖片(Mode 1),或是找到內切圓後依同法旋轉內切圓部分(Mode 2)。

5.內切圓實作方法為:使用extractCircularMask()切割出內切圓區域遮罩,然後重複使用bitwise_and將各圖片合併。

四、 執行結果

原圖

旋轉142度

內切圓旋轉71度


2022年2月23日 星期三

s1071502 作業1

 一、 作業說明

圖像亮度調整

撰寫一個程式讀取ㄧ張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變每個像素的 R 值。

注意修改後像素值溢位 Overflow 問題(像素值介於 0 與 255 之間)。

二、 作業環境

Windows 10

 

OpenCV 4.5.5

 

Visual Studio 2017

 

三、 實作方法

1.提示使用者進行輸入並檢查錯誤。

2.使用 ImageProcessing 函式 處理圖片。
3.
判斷使用者選擇的模式(1.灰階圖2.全彩圖)並執行相對應的處理。

4.使用 saturate_cast<uchar>()處理溢位問題。

 

四、 執行結果