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

2022年6月4日 星期六

s1081509 作業7

 作業說明:

 主題: 數學型態學影像處理應用 Morphological Image Processing

 

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

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

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

 

環境:

Ubuntu 20.40

Vim 8.2

Python 3.8.10

Opencv-python 4.5.5.64

Numpy 1.22.3

程式功能:

1. imread讀檔

2. 將圖轉灰階

3. 定義kernel大小

4. 依序坐erode, dilate操作iteration各一次

5. 用HoughCircles找出所要之圓(此函數的Output第二維即為圓數量)

6. 用circle畫出HoughCircles所標之圓

8. imwrite寫檔


5702(24/24)





5703(30/31)

5704(31/31)





使用指令:

python3 hw7.py IMG_5702.JPG

or

chmod +x hw7.py ;

./hw7.py IMG_5702.JPG

2022年6月2日 星期四

s1081509 作業6

 作業說明:

 Run-Length Based Image Compression練習

 

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

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

 

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

環境:

Ubuntu 20.40

Vim 8.2

Python 3.8.10

Opencv-python 4.5.5.64

Numpy 1.22.3

程式功能:

1. imread讀檔

2.將img split成BGR

3.對每個channel做RLC(oneChannelRLC function) (pixel強度, 數量)

4.將結果存成txt

(第一張圖為list直接存(壓縮效果不彰),第二張為每個row都是一個數字)

即編碼進txt方式不同

5. 計算壓縮率

*. Decoding Check將list reshape回原本channel的np array




使用指令:

python3 Assignment6.py img1.bmp

or

chmod +x Assignment6.py ;

./Assignment6.py img1.bmp


2022年5月18日 星期三

s1081509 作業5

 作業說明:

       Color Space Transformation

 

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

環境:

Manjaro Linux x86_64

Vim 8.2

Python 3.10

Opencv-python 4.5.5.64

Numpy 1.22.3

程式功能:

1.      imread()讀圖片

2.      cvtColor(img, cv2.COLOR_BGR2HSV) 轉成HSV格式

3.      製作yellow的upper_bound and lower_bound

4 .    cv2.inRange 製作 mask

5.     cv2.bitwise_and 翠取出所要黃色區域

6.      Imshow、imwrite展示、儲存圖片


使用指令:

python3 hw5.py flower.jpg

or

chmod +x hw5.py ;

./hw5.py flower.jpg 





2022年3月24日 星期四

s1081509 作業 3

 作業說明:

        撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE) (a)利用 Sobel Operators 偵測並輸出邊緣成分圖 (b)設計一個類似素描線條的自畫像圖案。

環境:

Ubuntu-20.04

Vim 8.2

CMake 3.16.3

OpenCV  4.2.0

程式功能:

1.      imread()讀圖片

2.      高斯模糊去噪

3.      Sobel operator取得grad_x, grad_y,convertScaleAbs x and y,再用addWeighted合成

4 .     THRESH_BINARY_INV做二值化,再做一次高斯模糊

5.       Imshow、imwrite展示、儲存圖片


使用指令:

make ; ./hw3 picture_name.jpg






2022年3月10日 星期四

s1081509 作業 2

 

作業說明:

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

環境:

Ubuntu-20.04

Vim 8.2

CMake 3.16.3

OpenCV  4.2.0

程式功能:

1.      imread()讀圖片

2.      namedWindowcreateTrackbar製造GUI

3.      若為mode 1,使用getRotationMatrix2D生成轉移矩陣,warpAffine將圖片旋轉

若為mode 2,先複製一個新的Mat ,用circle將內切圓塗黑,內切圓由r= min(rows/2,cols/2)Point( img.cols/2, img.rows/2 )所定義,再定義一個新的Mat作為Mask,此Maskzeros全部先塗黑再用circle將內切圓塗白,之後bitwise_and,可得保留內切圓內的圖像,將此圖像旋轉,再用addWeighted合成

4.      Imshow展示圖片

使用指令

make ; ./hw2 yzu.bmp 1

make ; ./hw2 yzu.bmp 2

1 for whole image, 2 for circle








 

2022年2月24日 星期四

s1081509 作業1

 作業說明:

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

開發環境:

Ubuntu-20.04

Vim 8.2

CMake 3.16.3

OpenCV  4.2.0

程式功能:

1. imread()讀圖片

2. 抽一個pixel出來看,若3個channels為相同則為灰階圖像,反之彩色

3. 先判斷加入數值後是否超過255或小於0,

若超過255,灰階圖像每個channel都定為255,若小於255,則每個都定為0,其餘則直接計算

若超過255,彩色圖像R channel定為255,若小於255,則定為0,其餘則直接計算

4. 用imwrite output


執行結果:

- gray 100



- gray -100





- RGB 100

- RBG -100