作業說明
請撰寫一個程式,利用數學型態學影像處理運算(erode(),
dilate()等函式),計算出所附圖像(共三張)每張圖像中圍棋個數。
作業說明
作業環境
anaconda
python 3.8.5
OpenCV 4.5.1
實作方法
壓縮
1. 讀入彩色圖片後用split()把RGB分開
2. 將二維的RGB用flatten()轉為一維
3. 在一維的RGB後加上圖片大小的資料後,用RLE演算法做壓縮,得到三個陣列
4.將三個陣列以savez()壓縮成 .npz檔
解壓縮
1.用load()讀入 .npz檔
2.對RGB做RLE解壓縮得到三個一維資料
3.將一維資料後的圖片大小移除後,用reshape()還原成二維
4.用merge()將二維RGB合併成三維彩色圖檔
結果
壓縮前與壓縮後:
第一張:
作業說明
利用所學的Color顏色的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚區域並將其標示出。
Windows 10
anaconda
python 3.8.5
OpenCV 4.5.1
實作方法
我嘗試了兩個方法,分別是以HSV及YCRCB做判斷
HSV:


作業說明
請撰寫一個程式,讀取一張 256 色灰階圖像。
(1)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像 方式呈現出。
(2)對圖像利用 Gaussian Low-Pass filter 處理,輸出平滑後圖像。(程式利用課本的 frequency filter 步驟者可得滿分!)
Windows 10
anaconda
python 3.8.5
OpenCV 4.5.1
實作方法
1.使用np.fft.fft2()進行dft轉換
2.np.fft.fftshift()與np.log()調整來得到頻譜
3.用np.angle()來取得相位角度
4.設定mask並做Gaussian Low-Pass filter 處理取得平滑圖像
執行結果
原圖
作業說明
撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可, 如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基 礎,設計一個類似素描線條自畫像程式。
Windows 10
anaconda
python 3.8.5
OpenCV 4.5.1
作業說明:
撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值 v (-255 <= v <= 255),並將圖像儲存至一個新圖像檔案中。
開發環境:
Windows 10
anaconda
python 3.8.5
OpenCV 4.5.1
程式說明:
1. 載入 cv2 函式庫
2. 用 imread 載入 pic1.jpg
3. 將每個 pixel 的 各個 RGB 的值加上 100,用np.clip()來確保其值在255之下
4. 將每個 pixel 的 各個 RGB 的值減掉 100,用np.clip()來確保其值在0之上
5. 用 imwrite 將圖片分別輸出為 "bright_img.jpg" 和"dark_img.jpg"
6. 用 imshow 顯示三張圖片
輸出結果:
pic1.jpg:
bright_img.jpg:
dark_img.jpg: