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()進行黑白反轉。


參考資料

留言

這個網誌中的熱門文章

rzwang Homework #1

s1101438 Homework #1

s1093309 作業6