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

2022年6月9日 星期四

s1081416作業7

 

1081416 作業7

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

 

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

 

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

 

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

 

 

開發環境:

Windows10

 

Vscode

 

Opencv 4.5.5

 

Python 3.10.2

程式想法:

 

一開始先用IMREAD_GRAYSTYLE讀取成灰階圖片,但是因為圖片太大, 所以我把它resize成能看見所有棋子適當的大小,再來定義kernel5X5的卷積。接著針對圖片使用erode()函式減少影像噪音,細化影像,再用dilate()函式膨脹, 然後使用HoughCircles()函式計算圓的數量,接著最後使circle()函式進行圓的畫圈。



2022年6月2日 星期四

s1081416 作業6

 s1081416 作業6

Run-Length Based Image Compression練習


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

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

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


開發環境:

Windows10


Vscode


Opencv 4.5.5


Python 3.10.2


程式說明:


一開始讀入圖片後,先將圖片B,G,R值用split()分開,再來使用flatten()將各通道變成一維陣列接著針對每一個通道進行RLE壓縮,將RLE後的B、G、R 和長寬存入bmp檔案,最後來用getsize()取得圖片大小,然後得到圖片壓縮率和平均壓縮率,並顯示解壓圖片


img1


img2


img3









2022年4月14日 星期四

s1081416 作業3

 1. 作業說明: 

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

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

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



2.開發環境:

  • Windows10

    Vscode

    Opencv 4.5.5

    Python 3.10.2



3.實作方法:


先用imread讀取檔案名稱並且使用灰階方式讀入圖片,使用傅立葉轉換分別取出頻譜大小相位角度數值並做成灰階圖片,接下來產生Gaussian Low-Pass filter的函數,並乘以頻譜大小,接著做反向傅立葉轉換。

2022年3月11日 星期五

s1081416 hw2

 作業2說明:


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


開發環境:


Windows10


Vscode


Opencv 4.5.5


Python 3.10.2



實作方法:

第一個整張圖片倒轉:用cv2.imread載完圖片,cv2.nameWindow叫出視窗,之後使用createTrackbar叫出滾動條,再連結到函式whirl_1, 裡面的getTrackbarPos可以隨時更新位置,和getRotationMatrix2D用來翻轉(中心點,角度,倍數),而warpAffine則能夠將我們仿射完的圖片,保持平行性與平直性,return完後cv2.imshow,然後寫一個while迴圈讓他一直跑,最後設一個key結束程式


第二個中心圓圖片倒轉:用numpy建立一個全黑的圖片,接著畫上一個白色的圓,利用cv2.bitwise_and遮罩,做出原本照片的中心圓.此時再讀取一次原本的圖片,在上面畫一個黑色的中心圓,再把原本圖片的中心圓以及畫了黑色圓的圖片相加cv2.add傳入函式whirl,之後步驟就和上一個做法一樣了





2022年2月25日 星期五

s1081416 作業1

作業說明:

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

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

每個像素的 R 值。


開發環境:

Windows11

Opencv 4.5.5

Python 3.10.2


實作方法:

1. 在輸入照片的網址並把照片存進資料夾後用imread()讀取

2. 用判斷式判斷照片是灰階圖或是彩色圖

3. 輸入要加上的像素值

4. 如果是彩色圖就把R值加上輸入的像素值,而如果是灰階圖就每個點都加上

5.          顯示最終結果


實作成果:

彩圖

100


-100

灰階圖

100



-100