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

2021年6月12日 星期六

s1073305 影像處理作業7

 作業說明

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

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

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

開發環境

l   Windows 10

l   Visual Studio 2019

l   Python 3.8.3

l   OpenCV 4.5.1


程式說明

1.讀取圖片後改為灰階
2.圖片進行threshold二值化後將圖片黑白反轉
3.進行erode()和dilate()處理,將棋子特徵顯示
4.用findContours找出旗子輪廓並存在參數裡
5.得到棋子數量

程式結果:

                                      實際24 預計22
 
                                     實際31 預計29
    
                                     實際31 預計31


2021年6月6日 星期日

s1073305 影像處理作業6

 作業內容:

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

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

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

 

Coding環境:

Windows 10

Visual studio

Python 3.9

Opencv-python 4.5.1.48

numpy 1.20.1

程式說明:

    1.利用input來取得檔案的名字並讀取.bmp檔

    2.之後處理每個通道的數值,利用run length 儲存後,並將檔案寫成.encode檔

    3.在讀入先前encode的檔案根據Header的資訊並還原圖輸出成名子_decode.bmp檔

壓縮率:

                          img1_encode.encode /img1.bmp=  7.885/14.3*100%     = 55.05%

       img2_encode.encode /img2.bmp 13.4/14.3*100%       = 93.7%

       img3_encode.encode /img3.bmp7.314/14.3*100%     = 51.1%

       Average:66.3%

     


處理結果:

 

Img1.bmp解壓後對比:




Img2.bmp解壓後對比




Img3.bmp解壓後對比




2021年5月23日 星期日

s1073305影像處理作業5

作業說明

附件中的讀.row晶片設計的高度檔案,設計人員無法直接看到相關資訊。利用你所學的Color顏色的知識與處理技術,撰寫一個程式來讀取附件中的讀.row 檔案,將高度資料以圖片(顏色)視覺化呈現出來,讓設計人員可以看到高度相關資訊。

開發環境

Windows 10

Python 3.7

Opencv-python 4.5.1.48

Matplotlib 3.1.4

numpy 1.20.1


程式說明

1.利用unpack取得raw裡的資料

2.用max, min函式來取得最大與最小值

3.使用interp將最大值與最小值差值調成0-1

4使用reshape來將raw轉成圖片

5.利用plt來顯示結果


程式結果







2021年5月16日 星期日

s1073305影像處理作業4

 作業說明:

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

開發環境:

    Window10

    Visual Studio 2019

    python 3.7

    OpenCV 4.5.1


程式說明:

    1.將圖片讀入,並將image轉為YCrCb

    2.將顏色的通道分割開來,並取Cr以及Cb通道的圖像

    3.將圖片利用閥值來分別是否為膚色

    4.將偵測完的圖片輸出顯示結果


執行結果:




2021年5月2日 星期日

1073305 影像處理作業3

 作業說明:

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

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

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

開發環境:

Windows 10

Visual Studio 2019

Python 3.8

OpenCV 4.5.1

程式說明:

1. 輸入圖片並轉為灰階圖片

2. 使用cv2.dft()進行傅立葉轉換

3. 利用np.fft.fftshift()以及np.log()來得到頻譜

4. 使用 np.angle 轉為相位圖

5.使用Gaussian Low-Pass filter 處理取得圖像

輸出結果:



2021年3月28日 星期日

s1073305 影像處理作業 2

 

作業說明:

撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可, 如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基 礎,設計一個類似素描線條自畫像程式


開發環境:

  • Windows 10
  • Visual Studio Code
  • Python 3.8.5
  • OpenCV 4.4.0


實作:

  1. 讀取圖片
  2. 將圖片轉成灰階
  3. 利用Sobel對x、y方向過濾找出邊緣
  4. 再利用convertScaleAbs將圖像轉回uint8
  5. 最後利用addWeighted來合併x,y,得到圖像
  6. 再將255-原值來達成反白的效果

執行結果:


原圖:




result:




圖片反白:











2021年3月6日 星期六

s1073305 影像處理作業一

 1.作業題目 :

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

2.開發環境:

    windows 10

    Visual Studio 2019

    OpenCV - 4.5.1

    python

3.實作方法:

    1.輸入v值

    2.使用imread讀取jpg圖片檔

    3.取得照片的長寬

    4.將每個像素點加上v值

    5.顯示更改亮度後的圖片

    6.使用imwrite儲存更改亮度後的圖片

    7.利用hstack將兩個圖片合併顯示出來

4.輸出:

原圖和v=-100:

原圖和v=100: