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

2021年6月14日 星期一

s1062036 影像處理作業7

 作業說明

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

操作環境

Windows 10
pychram
OpenCV 4.5.2
Python 3.6

程式說明

1. 把圖片轉成灰階
2. 把圖片二值化
3erode()和dilate()處理旗子
4. 用findContours()處理旗子輪廓
5. 用drawContours()於畫出輪廓
6. 印出數量


實作結果







2021年6月6日 星期日

s1062036 影像處理作業6

 作業說明:

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

 

操作環境:

window10

python 3.6

pycharm

openCV 4.5.2.52

 

程式說明:

Encoding:

    1.imread()讀取圖片

    2.split()切成rgb通道  

    3.flatten()將rgb轉成1D array

    4.利用Run-Length編碼

    5.分別將rgb的list串接起來且前五項存起來

    6.輸出listimg_compress.2036

 

Decoding:

    1.open()讀取.2036

    2.將rgb資訊分別存入list

    3.利用Run-Length的方式解碼

    4.np.array()list轉成array並改為uint8

    5.reshape()array轉成(height, width, channel)

    6.merge()將rgb合併成img

    7.imwrite()輸出


執行結果:




壓縮率:8,074,099/14,665,254=0.55



壓縮率:13,789,356/14,665,254=0.94

 


壓縮率:7,488,796/14,665,254=0.51


2021年5月24日 星期一

s1062036 影像處理作業5

作業說明:

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

開發環境:
    Window10
    pycharm
    Python3.6
    OpenCV 4.5.2

程式說明:
    
    1.用open()讀取圖片
    2.unpack 取得 width , height ,channel 
    3.每4byte unpack後存入list 
    4.找出list的min(list中第二小的值), max值
    5.將list改成array 再 reshape() 轉成圖片的格式
    6.applyColorMap()轉成對應的顏色
    7.輸出圖片

執行結果:
02

08


10











2021年5月14日 星期五

s1062036 影像處理作業4

 作業說明

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

開發環境
Window10
Visual Studio 2019
C++
OpenCV 4.5.1

程式說明
1. 讀取圖片
2. 讀去圖片的rgb
3. 將rgb轉成 y cr cb
4. 將cr做otsu
5. 判斷 y cr cb是否在膚色範圍內

執行結果

原圖

otsu
ycrcb





2021年5月2日 星期日

s1062036 影像處理作業3

 作業說明

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

開發環境
Window10
Visual Studio 2019
C++
OpenCV 4.5.1

程式說明
1. 將圖片讀入轉成灰階
2. getOptimalDFTSize 取得進行dft的最優尺寸
3. gaussianKernel來進行高斯低通濾波器
4. freqfilt來進行頻率域濾波
5. freqfilt裡面用merge合併通道、dft進行傅立葉轉換、split來分離通道、移動圖像(分離或交換合併虛部實部)
6. phase取得相位圖

執行結果



















2021年3月25日 星期四

s1062036 影像處理作業 2

作業說明: 

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

操作環境: 

Windows 10
Visual Studio 2017 + OpenCV4.1.0 (Debug x64) , C++

程式說明:

  1. 使用imread讀取圖片
  2. 將圖片轉為灰階
  3. 透過Sobel函式處理圖片的x方向和y方向
  4. 使用convertScaleAbs增強圖片
  5. 將Sobel處理後的x方向與y方向的結果使用addWeighted給予x軸與y軸各0.5的權重,將兩個方向結合。
  6. 將圖片進行黑白反轉,以255-每個像素值。
  7. imshow顯示結果。 
  8. imwrite 儲存結果。 

處理結果: 

原圖

灰階

x方向

y方向

xy方向合併

結果





2021年3月5日 星期五

s1062036 影像處理作業 1

作業題目:

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

使用環境:

Windows 10
Visual Studio 2017 + OpenCV4.1.0 (Debug x64) , C++

實作方法:

1. 用imread讀圖
2. imshow顯示目前圖片
3. 使用者輸入數值
4. 更改BRG並判斷有沒有溢位
5. imshow顯示調整後的圖片
6. imwrite存檔

執行結果

原圖
v=100

v=-100