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

2021年6月13日 星期日

s1071515 影像處理作業7

作業說明

請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附圖像(共三張)每張圖像中圍棋個數。
a.     請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。
b.    程式不一定可以算出正確棋子數量,越接近正確答案越好!

操作環境

Windows 10
Visual Studio 2019
OpenCV 4.5.2
Python 3.9

程式說明

1. 把圖片轉成灰階並讀取
2. 把圖片二值化並把黑白顏色反轉
3erode()和dilate()把棋子處理成合適大小
4. 用findContours()處理旗子輪廓並存在hierarchy參數裡
5. 用len(hierarchy[0])得到圖片裡輪廓的數量


實作結果

實際:24   計算:21
實際:31   計算:31
實際:31   計算:31





2021年6月7日 星期一

s1071515 影像處理作業6

作業說明

附件中為三張利用將高度以色彩視覺化後的圖片。
請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。
部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率。

操作環境

Windows 10
Visual Studio 2019
OpenCV 4.5.2
Python 3.9

程式說明

1. 讀取圖片的長、寬和channel
2. 對3個channel做run length encoding 運算並把長, 寬, channel數與run 
    length encoding後的資料存在.encode裡
3讀取.encode, 並將每個channel的資料並用row*col還原成原本的圖片
    並輸出


實作結果

       img1壓縮率:7885/14322(KB) = 55.05%
       img2壓縮率: 13467/14322(KB) = 94.03%                   
       img3壓縮率: 7314/14322(KB) = 51.06%
       平均壓縮率(55.05% + 94.03% + 51.06%) = 66.71%

s1071515 影像處理作業8

作業說明

請寫一個程式將附圖二值化後輸出黑白圖像。
目的是將文字與背景分離。

操作環境

Windows 10
Visual Studio 2019
OpenCV 4.5.2
Python 3.9

實作結果



2021年5月24日 星期一

s1071515影像處理作業5

作業說明

撰寫一個程式來讀取附件中的讀.raw 檔案,將高度資料以圖片(顏色)視覺化呈現出來,讓設計人員可以看到高度相關資訊。

操作環境

Windows 10
Visual Studio 2019
OpenCV 4.5.2
Python 3.8

程式說明

1.利用unpack取得raw裡的資料
2.用max, min函式來取得最大與最小值
3.使用interp將最大值與最小值的差值調成0-1
4.使用reshape來將raw轉成圖片
5.利用plt來顯示結果

實作結果


                                          02

                                                             08

                                                                    10


2021年5月17日 星期一

s1071515影像處理作業4

作業說明

利用你所學的Color顏色的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出。

操作環境

Windows 10
Visual Studio 2019
OpenCV 4.5.1
Python 3.7

程式說明

1.將圖片讀入,並將image轉為YCrCb
2.將顏色的通道分割開來,並取Cr以及Cb通道的圖像
3.將圖片利用閥值來分別是否為膚色
4.將偵測完的圖片輸出顯示結果

實作結果

      原圖:


      結果:



2021年5月3日 星期一

s1071515 影像處理作業3

 作業說明

請撰寫一個程式,讀取一張256 色灰階圖像 。
        (1) 計算輸入圖的離散傅立葉轉換結果並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。
        (2) 對圖像利用Gaussian Low Pass filter處理,輸出平滑後圖像。

操作環境

Windows 10
Visual Studio 2019
OpenCV 4.5.1
Python 3.7

程式說明

    1.用imread()載入全彩圖片
    2.接著將圖片全彩轉灰階
    3.用cv.dft()進行傅立葉轉換
    4.使用np.fft.fftshift()將頻譜移到中心點
    5.用cv.magnitude()就得到頻譜圖
    6.np.angle()以得到相位圖
    7.利cv2.GaussianBlur()來濾波,以得到平滑圖

實作結果

      原圖:


      頻譜圖:


      相位圖:


     平滑圖:


2021年3月28日 星期日

s1071515 影像處理作業2

作業說明

撰寫一個程式,讀取一張256色灰階圖像或 RGB 全彩圖像,利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。

操作環境

Windows 10
Visual Studio 2019
OpenCV 4.5.1
Python 3.7

程式說明

用cv2、numpy函式庫 
imread讀取圖片
cvtColor將圖片轉成灰階
Sobel將圖片分別對x、y軸抓取邊緣
convertScaleAbs將抓取邊緣後的影像轉換成uint8格式
addWeighted將處理過的x、y軸影像進行合成並設定權重
用255減去合成後的圖片的像素進行顏色反轉
imshow顯示圖片
waitKey等待使用者的下個步驟

實作結果


原圖

Sobel針對x軸抓取邊緣

Sobel針對y軸抓取邊緣

x、y軸合成後的影像

結果(顏色反轉)

2021年2月28日 星期日

s1071515 影像處理作業1

 

作業說明

撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值v ( -255 ≦ v  ≦ 255 ),並將圖像儲存至一個新圖像檔案中。

操作環境

Windows 10
Visual Studio 2019
OpenCV 4.5.1
Python 3.7

程式說明

用cv2、numpy函式庫 
imread讀取一張圖,np.clip使得範圍不會超過0~255,並調整圖片的對比度,輸入v去修改圖片的明暗,再用hstack將原圖和調整後的圖並排,最後用imshow顯示比較圖,以及用waitKey使比較圖顯示直到使用者進行下一個步驟。

實作結果(左邊為原圖)


輸入100
輸入-100