s1071413 作業2
一、作業說明
主題: 線條自畫像 (二值化與邊緣偵測 Image Thresholding and Edge Detection)
撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE)
(a)利用 Sobel Operators 偵測並輸出邊緣成分圖
(b)設計一個類似素描線條的自畫像圖案。
二、開發環境
- Windows10
- Visual Studio 2019
- C++
- OpenCV 4.7.0
三、程式說明
main第29行讀入灰階圖片
【a.邊緣偵測部分】
使用openCV的Sobel函數偵測邊緣
但效果並不清晰,所以我又使用了convertScaleAbs函數調整對比度。
【b.素描效果部分】sketch函數
Canny邊緣檢測函數:尋找圖片的邊緣
Canny邊緣檢測函數:尋找圖片的邊緣
dst.create & dst.setTo 函數:先創建一個空白圖像檔,setTo函數把圖像的每個像素值都設置為白色255,這是為了讓邊緣檢測到的線條能夠顯示在白色的背景上。
兩個for迴圈:檢查了圖像img的每個像素,如果在邊緣圖像edges對應的位置上檢測到了邊緣,就從輸入圖片img中取出該位置的像素值並給輸出圖像dst對應位置的像素同等的值,這樣就只有非邊緣的像素值會是白色。
留言
張貼留言