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

2022年6月9日 星期四

s1083330 作業7

 一、 作業說明

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


二、 開發環境:

MacOS 12.3.1 m1 silicon

PyCharm

python 3.9

opencv 4.5.4

三、實作

1.在程式碼內讀取照片,程式執行一次輸出一個結果。


2.以灰階模式將圖片讀入


3.利用threshold對圖片進行二值化。


4.用erode然後用morphologyEx做close重複做幾次


5.cv2.findContours找出邊界和畫出邊界。


6.最後輸出。

四、結果

第一張

第二張
第三張

2022年6月2日 星期四

s1083330 作業6

 一.作業說明

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


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


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


二. 開發環境

.Window11


.Visual Studio Code - Python


.OpenCV 4.5.5


三. 程式說明

1.讀取檔案


2.將圖片分成 B、G、R


3.將B、G、R轉成一維陣列


4.RLE


5.將RLE後的B、G、R 和長寬存入bmp檔案


6.計算壓縮率


7.RLD 解壓縮


8.顯示解壓圖片 

三.執行結果







2022年5月17日 星期二

s1083330 作業5

  1. 作業說明


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


2. 開發環境


    Window 10


    Visual Studio 2017


    OpenCV 4.5.5


3.實作方法


1.用imread()讀取圖片


2.用一個function把不要的顏色mask


3.masked的圖跟原圖融合

4.圖片









2022年4月14日 星期四

s1083330 作業4

 作業說明:


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


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


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


 


使用環境/語言:


Windows10

Visual Studio 2017

Opencv-4.5.5

C++


 


執行/程式說明:


(1)


1.IMREAD_GRAYSCALE將圖片載入成黑白


2.用merge將plane給合併


3.利用dft()進行傅立葉轉換


4.利用split()將通道切割出


5.用magnitude()製作Spectrum magnitude圖


6.用phase()製作Phase圖


7.將圖片重新排列成四個象限


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


(2)

1.用GaussianBlur()



2022年3月24日 星期四

s1083330 作業 3

 作業說明


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


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


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



- 開發環境


Windows 10


Visual Studio 2017


OpenCV - 4.5.5


實作方式

用灰階讀圖後,用sobel取得圖形邊緣,再用threshold 轉換成素描圖

結果

        


2022年3月10日 星期四

s1083330 作業 2

 作業說明:


將一張圖像用兩種方式旋轉(a)整張圖像,(b)中心內切圓區域,旋轉一個角度(逆時針旋 轉 0 度至 359度)

利用一個滑動條(trackbar)控制旋轉角度。



一、開發環境:


      Window10   

      Microsoft Visual Studio 2017

      C++

      OpenCv 4.5.5




二、程式說明:


創造兩個視窗加上trackbar

一個視窗是以圖片為中心整張旋轉

另一個是讓圖片中心內切圓的部分使其旋轉

旋轉的部分是用getRotationMatrix2D取得的矩陣再用warpaffine做移動

內切圓旋轉事先切成兩個圖片旋轉切圓後再用addweight合成

三、結果:
        
        

2022年2月23日 星期三

s1083330 作業1

 一、 作業說明


撰寫一個程式讀取一張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入


圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變


每個像素的 R 值。修改後,像素值須介於 0 與 255 之間。


二、 開發環境


Windows 10


Visual Studio 2017


OpenCV - 4.5.5


三、 實作方法


1. 利用imread讀取圖片,並要求使用者輸入欲改變的值。


2. 利用迴圈確認圖片每一個pixel的RGB是否皆相等。


3. 若皆相等,表示其轉為灰階圖像。將每個pixel的gray值加上使用者輸入的值。


4. 若不相等,表示其為全彩圖像。將每個pixel的R值加上使用者輸入的值。


5. 最後同時輸出原本的照片以及調整後的照片。

四、 實行方法

        1.+100

        2.-100
        
        灰階圖
        3.100

        4.-100