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

2021年3月27日 星期六

s1071441 影像處理作業2

一、作業說明
撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可, 如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基 礎,設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)

二、作業環境&語言
Windows 10

Visual Studio Code 1.54.3

OpenCV 4.5.1.48

Python 3.8.3

三、實作方法

  1. imread讀取圖片 
  2. 建一張白畫布畫輪廓用
  3. 用高斯平滑過濾過多細節及雜訊
  4. 用Sobel分別偵測x軸方向跟y軸方向的邊緣 
  5. 轉換為unit8
  6. 將兩軸方向的偵測結果相加
  7. 用bitewise_not使黑白相反
  8. 使用Otsu二值化,不然findContours會找到很多不是輪廓的東西
  9. 用findContours找出輪廓再用drawContours畫出輪廓

四、執行結果 

原圖:


Sobel:

drawContours: 



2021年3月3日 星期三

s1071441 影像處理作業1

 一、作業說明

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

二、作業環境&語言

Windows 10 

Visual Studio 2019 

OpenCV4.5.1 (Debug x64)

C++

三、實作方法

1.    cin 輸入變數 v ( -255 <= v <= 255)

2.    imread() 讀取圖片

3.    由於原圖太大,將 row 跟 column 都 resize成原本的1/2

4.    用at走訪每個pixel,將r、g、b都加上v(同時避免像素值溢位問題)

5.    imshow()輸出修改後圖片

6.    imwrite()儲存圖片

 

四、執行結果

原圖:

v = 100:

v = -100: