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

2022年6月9日 星期四

s1082040 作業7

 一、作業要求

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

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

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

二、程式說明

1. imread讀取圖片並儲存灰階

2. 圖片太大需resize圖片

3. 使用threshold()二值化圖片

4. erode侵蝕再dilate膨脹圖片

5. 先用canny()顯現邊緣再用houghcircles()計算圓圈數

6. 最後用circle()畫出圓至原圖上

三、程式環境

Windows 10

Visual Studio 2019

OpenCV 3.4.6

 

四、執行畫面   

        原圖                          二值化 




Canny                           畫圓


偵測顆數(circle.size())


IMG_5702                        IMG_5703



2022年6月2日 星期四

s1082040 作業6

 一、作業要求

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

請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)

二、程式說明

1. imread讀取圖片並建立vector<pair<int,int>>來儲存資料

2. rgb分別儲存成三個陣列

3. 將三個陣列用run-length方法存在vector<pair<int,int>>

4. 輸出成txt

5. stat讀取檔案並計算壓縮率

三、程式環境

Windows 10

Visual Studio 2019

OpenCV 3.4.6

四、執行畫面   

原圖

Run-length壓縮法

原圖與壓縮後尺寸


計算平均壓縮率














2022年5月18日 星期三

s1082040 作業5

 一、作業要求

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

二、程式說明

1. imread讀取圖片

2. COLOR_BGR2HSV轉換成hsv

3. inrange分離hsv黃色成mask

4. bitwise_and 原圖與mask

三、程式環境

Windows 10

Visual Studio 2019

OpenCV 3.4.6

四、執行畫面   

                                     

原圖

黃色


 

2022年4月12日 星期二

s1082040 作業4

 一、作業要求

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

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

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

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

二、程式說明

1. COLOR_BGR2GRAY讀取圖片並設成灰階。

2. dft()傅立葉轉換

3. split()分離轉換後的實部及虛部

4. magnitude()得到頻譜/Phase()得到相位圖

5. Gaussianblur()模糊

三、程式環境

Windows 10

Visual Studio 2019

OpenCV 3.4.6

四、執行畫面                

                                    原圖/模糊


 

        頻譜/相位


2022年3月17日 星期四

s1082040 作業3

 一、作業要求

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

二、程式說明

A. 使用 Sobel 函式找出xy的梯度,再用addWeighted()合併。

B. 將原圖-255,再做模糊處理,然後用divide()邊緣圖與模糊圖合併,最後用threshold輸出圖片。

三、程式環境

Windows 10

Visual Studio 2019

OpenCV 3.4.6

四、執行畫面




                                                    Mode:a                                                                     


Mode:b

2022年3月10日 星期四

s1082040作業2

一、作業要求

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

二、程式說明

1.createTrackbar把做出拉bar

2.再用for迴圈給值分出圓圈內外圖片

3.warpAffine把圓圈內圖片旋轉(同模式1)

4.bitwise_or合併內外圖片

三、程式環境

Windows 10

Visual Studio 2019

OpenCV 3.4.6

四、執行畫面

整張圖片旋轉

 

中間旋轉


2022年2月23日 星期三

s1082040 作業1

 一、作業要求

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

 二、程式說明

        1.原圖.convertTo(新圖, CV_32F) 需先轉成高精度再進行亮度轉換

        2.用for迴圈以圖片col和row當作範圍一個一個轉換

        3. 偵測灰階圖片:當r==g==b時判斷為灰階圖片

        4.若為全彩圖片則只調整r值

 三、程式環境

Windows 10

Visual Studio 2019

OpenCV 3.4.6

 四、執行畫面

                                                   Lenna(+100)                    Lenna(-100)


                                                  bookgrey(+100)              bookgrey(-100)