s1091444 作業2
同步發布於 https://titaliu1224.github.io/
功課要求
撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE)
1. 利用 Sobel Operators 偵測並輸出邊緣成分圖
2. 設計一個類似素描線條的自畫像圖案。
成果
開發環境
- Windows 10
- Visual Studio Code
- Python 3.9.16
- OpenCV 4.5.4
實作
使用的 library 如下:
import cv2
import matplotlib.pyplot as plt
import numpy as np
1/ 讀取灰階圖片
colored_img 用以展示彩色的原圖,而 cv2.imread(file_name, cv2.IMREAD_GRAYSCALE) 會以灰階模式讀入一張圖。
2/ 邊緣成分圖
首先利用高斯模糊 (Gaussian blur) 去除雜訊(噪聲),使邊界更好檢測:
再利用索伯算子 (Sobel operaters) 提取 x 方向和 y 方向的邊界,之後將兩者的絕對值相加,獲得完整的邊緣成分圖。
3/ 素描線條畫像
這裡簡單的使用 bitwise_not() 將邊緣成分圖黑白相反,使其看起來像素描。
總結
本篇使用高斯模糊去除雜訊、索伯算子提取邊界、bitwise_not()進行黑白反轉。
留言
張貼留言