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

2022年6月7日 星期二

s1083306 作業7

   1. 作業說明

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

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

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

2.開發環境

Windows 10

Visual Studio 2019

OpenCV 455

3. 實作方法

1. 讀入圖片後轉成灰階

2. 將轉成灰階的圖片二值化

3. 用erode讓圖片去噪,讓圖片更細緻

4. 再利用dilate讓圖片的輪廓回復正常

5. 最後用findContours函示找出棋子個數

4. 執行結果

img1






img2




img3




棋子個數



















2022年5月31日 星期二

s1083306 作業6

  1. 作業說明

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

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

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

2.開發環境

Windows 10

Visual Studio 2019

OpenCV 455

3. 實作方法

1. 讀入圖片後,將圖片用split切割為R,G,B三個通道

2. 再用flatten將各通道一維化

3. 接著對每個通道做RLE壓縮,如1,1,2,2,3,3,3,就會壓縮成2,1,2,2,3,3

4. 把處理完的結果儲存成壓縮檔

5. 計算平均壓縮率

4. 執行結果

img1


img2


img3


壓縮率















2022年5月16日 星期一

s1083306 作業5

 1. 作業說明

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

2.開發環境

Windows 10

Visual Studio 2019

OpenCV 455

3. 實作方法

1. 讀入圖片

2. 用cvtColor將原始圖片轉成hsv

3. 設定黃色的上下限

4. 使用inRange濾出黃色

5. 將原圖和濾黃色的圖片做copyTo

6. 輸出

4. 執行結果

原圖


結果








2022年4月11日 星期一

s1083306 作業4

 1. 作業說明

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

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

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

2.開發環境

Windows 10

Visual Studio 2019

OpenCV 455

3. 實作方法

(1)

1. 讀入灰階圖片

2. 用getOptimalDFTSize取得尺寸並用copyMakeBorder填充邊緣的像素

3. 進行傅立葉轉換,將複數轉換成幅值

4. 使用normalize把值控制在0-1之間

5. 輸出

(2)

1. 讀入灰階圖片

2. 將mask變數設為5,再用for迴圈對每個點做卷積

3. 輸出

4. 執行結果

(1)

原圖


頻譜大小


相位角度


(2)

原圖


Gaussian Low-Pass filter







2022年3月14日 星期一

s1083306 作業 3

 1. 作業說明

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

2. 開發環境

Windows 10

Visual Studio 2019

OpenCV 455

3. 實作方法

(a)

1. 利用imread讀取圖片,同時儲存成灰階

2. 用sobel函數對x, y邊緣檢測

3. 使用addweighted將兩張檢測完的圖片合併

(b)

1. 把讀取進來的灰階圖片做GaussianBlur

2. 最後用divide即可

4. 執行結果

(a)


(b)






2022年3月1日 星期二

s1083306 作業2

 1. 作業說明

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

2. 開發環境

Windows 10

Visual Studio 2019

OpenCV 455

3. 實作方法

1. 決定整張圖片旋轉(mode = 1)或只旋轉中間(mode = 2)的模式

2. mode 1利用getRotationMatrix2D與warpAffine配合createTrackbar去控制圖片旋轉的幅度

3. mode 2先找到圖片的內切圓,將其分為兩部分,分別為內切圓(圖片A),內切圓其餘部分(圖片B)並且在旋轉圖片A時,利用bitwise_or把圖片A與圖片B再次合成,造成圖片A旋轉而圖片B不動的效果

4. 輸出結果

4.執行結果

整張旋轉



內切圓旋轉





2022年2月23日 星期三

s1083306 作業1

 1. 作業說明

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

2. 開發環境

Windows 10

Visual Studio 2019

OpenCV 455

3. 實作方法

1. 輸入想調整的數值,正或負皆可

2. 判斷是灰階圖像或彩色圖像

3. 若是灰階圖像則同時改變RGB三個的數值,彩色圖像僅更改R的數值

4. 輸出結果

4. 執行結果

        彩色:

左為R增加150 右為原圖



        左為R減少150 右為原圖


灰階:

左為增加150 右為原圖





左為減少150 右為原圖