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

2022年6月4日 星期六

s1081510 作業7

 一. 作業說明

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

三張)每張圖像中圍棋數。

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

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

二. 開發環境

Window11

Visual Studio Code - Python

OpenCV 4.5.5

三. 程式說明

1.      輸入圖片名稱

2.      將圖片轉換成灰階圖

3.      再將圖片二值化(變成黑白圖片)

4.      代入dilate()函式

5.      再代入erode()函式

6.      findContours()找出輪廓

7.      輸出圍棋個數

四. 執行結果


1.       IMG_5702.JPG    ( 實際數量:24 , 偵測數量:23 )


2.       IMG_5703.JPG    ( 實際數量:31, 偵測數量:28)


3.       IMG_5704.JPG    ( 實際數量:31, 偵測數量:31)


2022年6月2日 星期四

s1081510 作業6

 一. 作業說明

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

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

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

二. 開發環境

Window11

Visual Studio Code - Python

OpenCV 4.5.5

三. 程式說明

1.      讀取檔案

2.      將用split(),將圖片分成 BGR

3.      BGR轉成一維陣列

4.      使用RLE

Example[1,1,1,1,2,2,3] [4,1,2,2,1,3]

5.      RLE後的BGR 和長寬存入txt檔案

6.      計算壓縮率

7.      使用RLD 解壓縮

8.      使用reshape恢復原狀

9.      Merge回原圖片

10.  儲存解壓縮的圖片


四. 執行結果


1. compression ratio of img1.bmp


2. compression ratio of img2.bmp


3. compression ratio of img3.bmp


4. 壓縮檔和解壓縮檔


2022年5月18日 星期三

s1081510 作業5

 一. 作業說明

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

二. 開發環境

Window11

Visual Studio 2019

OpenCV 4.5.5

三. 程式說明

1.      圖片縮小

2.      RGB轉成HSV

3.      INRANGE()生成遮罩

4.      bitwise_and()結合原圖片與遮罩

5.      產生結果


四. 執行結果



遮罩


結果

2022年4月14日 星期四

s1081510 作業4

 一. 作業說明

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

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

(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。
(程式利用課本的frequency filter步驟者可得滿分,在網頁中將每個步驟結果呈現出。直接套用opencv函數得一半分數。)

二. 開發環境

Window11

Visual Studio 2019

OpenCV 4.5.5

三. 程式說明

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

1.先做傅立葉轉換

2.再將實部與虛部分出來

3.進行中心化調整

4.magnitude()得出頻譜圖

5.phase ()得出相位角度

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

1.先得出Gaussian Low-Pass filter的圖

2.與第一題傅立葉轉換的結果相乘

3.再取反傅立葉即可

四. 執行結果


頻譜圖


相位角度



 原圖 


 使用Gaussian Low-Pass filter後 

                                                                 

2022年3月23日 星期三

s1081510 作業 3

 

一. 作業說明

(a)利用 Sobel Operators 偵測並輸出邊緣成分圖
(b)設計一個類似素描線條的自畫像圖案

二. 開發環境

Window11
Visual Studio 2019
OpenCV 4.5.5

三. 程式說明

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

1. 先求x方向梯度

2. 在求y方向梯度

3. 最後合併梯度

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

1. 將灰階圖取反

2. 使用GaussianBlur

3. 再取反後做divide

四. 執行結果





2022年3月10日 星期四

s1081510 作業 2

 一. 作業說明

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

二. 開發環境

Window11
Visual Studio 2019
OpenCV 4.5.5

三. 程式說明

1. 先決定要旋轉整張圖片還是只旋轉圖片的中心內切圓

2. 用原始圖片創建出圖片的中心內切圓和中心內切圓外圍兩張圖片

3. 創建TrackBar

4. 依照使用者輸入的結果和移動TrackBar的位置,輸出結果

5. 若使用者選擇只旋轉中心內切圓,則將新創建的中心內切圓圖片旋轉後,在與中心內切圓外圍的圖片結合

6. 若是選擇旋轉整張圖片,則直接旋轉原始圖片

四. 執行結果


(a)整張圖像


(b)中心內切圓區域


程式Demo影片

2022年2月22日 星期二

s1081510 作業 1

 一. 作業說明

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

二. 開發環境

Window11
Visual Studio 2019
OpenCV 4.5.5

三. 程式說明

1. 輸入圖片名稱,判斷圖片是否存在
2. 若圖片存在,則輸入一個數值(此數值為調整亮暗的程度)
3. 判斷圖片是否為灰階圖
4. 若圖片為灰階圖,則更改R、G、B三值大小(原本的值加上輸入的數值)
    (若更改後的值大於255,則值為255;若小於0,則值為0)
5. 若圖片為彩色圖,則更改R值大小(原本的值加上輸入的數值)
    (若更改後的值大於255,則值為255;若小於0,則值為0)
6. 將原始圖片和更改後的圖片輸出

四. 執行結果

灰階圖 ,數值=100

灰階圖 ,數值=-100

彩色圖 ,數值=100

彩色圖 ,數值=-100

程式Demo影片