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

2022年6月4日 星期六

s1081508作業7

 1081508hw7


1.題目:

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

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

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


2.環境

vs code
open cv 4.5.5.62
Python 3.9.1
windows 11

3.實作:

   1.讀入圖片
   2.定義一個5x5的捲積
   3.對圖片做cv2.erode()和cv2.dilate
   4.將圖片轉成灰階並做medianblur
   5.用HoughCircles偵測圖片上的圓
   6.輸出圓的數量和偵測的圖片

4.圖片

    5702
    實際棋子數量為24,偵測結果為22


 

5703
實際棋子數量為31,偵測結果為29




5704
實際棋子數量為31,偵測結果為31























2022年6月2日 星期四

s1081508作業六

                                    s1081508作業六

1.題目:

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

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

提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)


2.環境

Python 3.9.1

vs code
open cv 4.5.5.62
windows 11

3.實作:
    1.讀入圖片
    2.將rgb三個channel 分別存起來
    3.對3個channel 分別做RLE
    4.將壓縮的資料存為npz檔
    5.比較檔案大小和計算平均壓縮率

4.輸出:



2022年5月12日 星期四

s1081508作業五

 

 1081508作業5 


1.題目:

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

2.環境:

vs code
open cv 4.5.5.62
windows 11

3.實作:
    1.讀入圖片
    2.將圖片轉成HSV圖
    3.設定要找顏色的上下範圍做成mask
    4.套回原圖找在範圍內為true的pixel
    5.將輪廓套到圖上讓他更清楚

4.圖片

用輪廓標出黃色區域
HSV圖
黃色部分

    

2022年4月11日 星期一

s1081508作業4

 1081508作業4   


1.題目:

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

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

2.環境:

vs code
open cv 4.5.5.62
windows 11

3.實作:

        1.讀入灰階圖片
        2.用cv2.dft : 將空間域轉化為頻率域,輸出會是一個複數matrix
        3.把martrix丟入用numpy.fft將低頻部分移動到影象中心取得shift
        4.把shift的實部虛部用cv2.magnitude計算,算出頻譜大小
        5.shift的虛部實部取arctan,算出相位角度
        6.定義一張filter,保留低頻的部分
        7.把shift和filter相乘,再將低頻的部分轉回去
        8.再做逆傅立葉轉換得到平滑後的圖片
4.結果: 

input



頻譜大小




相位角度





Gaussian Low-Pass filter





2022年3月20日 星期日

s1081508作業3

1081508作業3

 1.作業說明

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

2.環境

vs code 
opencv 4.5.5.62
windows 11

3.實作

    1.利用Sobel對x,y方向分別處理
    2.將其轉換成unit8的形式
    3.利用bitwise_or將x,y方向的圖帶入得到edge的圖
    4.用gaussian_blur降低雜訊
    5.將原圖和edge圖做divide得到sketch

4.結果

original


edge



sketch




2022年3月4日 星期五

s1081508作業2

 1081508hw2

1.題目

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

2.環境

vs code 
opencv 4.5.5.62
windows 11

3.方法

  1. 讀入圖片後確認中心點
  2. 用.circle在圖上畫出一個圓再用.bitwise_and將圓以外的地方變黑存成masked
  3. 用.circle在圖片上畫出內部填滿的圓存成hollow_img
  4. 用.createTrackbar呼叫trackbar加上trackbar並旋轉masked存成rotated
  5. 用.addWeighted合併rotated 和hollow_img存成rotate
  6. show rotate

4.結果










2022年2月22日 星期二

s1081508 作業1

 1.題目說明

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

2.使用環境

windows 11
google collaboratory
OpenCV  4.1.2
 

3.方法

    1.用imread通過路徑讀入圖片
    2.輸入要加上的數值
    3.用兩個for loop 改變每個像素的值
    4.用numpy的clip使小於0的值為0、大於255為255來解決 overflow

4.結果

   灰階 -100
    
    灰階+100

        彩色+100
        彩色-100