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

2022年6月8日 星期三

s1081411 作業7

一、作業說明

請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附圖像(共三張)每張圖像中圍棋個數。

a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。

b. 程式不一定可以算出正確棋子數量,越接近正確答案越好!

二、開發環境

Windows 10

Visual Studio 2017

OpenCV - 4.5.0

三、實作方法

1.imread()讀入圖片

2.將圖片轉為灰階

3.設定erodtion跟dilation的kernel大小

4.做erode()和dilation()

5.HoughCircles辨識出圖中的圓

6.把辨識出的輪廓畫在原圖上

四、執行結果





2022年6月2日 星期四

s1081411 作業6

 1.作業說明:

附件中為三張利用將晶片高度以色彩視覺化後的圖片。

請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。

部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。

2.開發環境:

  • windows10
  • OpenCV 4.5.5
  • Visual Studio 2019
  • C++

3.實作方法:

1.imread()讀入圖片

2. 將圖分成B,G,R  

3.分別對B,G,R 做 RLE 

4.將分別做的RLE存至txt文檔中 

5.讀取原圖和壓縮後檔案大小計算壓縮率

6.計算平均壓縮率

4.執行結果:

圖1
圖2
圖3
壓縮率
檔案大小比對
檔案大小比對
檔案大小比對




2022年5月19日 星期四

s1081411 作業5

 

   1. 作業說明:


  • 撰寫一個程式將所附圖像flower.jpg的黃色花瓣區域擷顯示出來。

    2. 開發環境:


    • Windows 10
    • Visual Studio 2017 c++
    • OpenCV 4.5.5

     3. 實作方法:

          

      •  imread讀取圖片

      •  將圖片轉為HSV

      •  inrange設定上下限擷取圖片黃色部分做出mask

       •  利用for迴圈對比原圖和mask擷取出黃色花瓣


     4. 實作結果:
原圖
hsv
結果




2022年4月14日 星期四

s1081411 作業4

 

 1. 作業說明: 

請撰寫一個程式,讀取一張256色灰階圖像。

(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。

(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。


2.開發環境:

  • Windows 10
  • Visual Studio 2019
  • OpenCV3.4.6
  • C++
3.實作方法:
  1. imread以灰階方式讀進圖片
  2. getOptimalDFTSize找最佳尺寸
  3. copyMakeBorder()填補邊緣的像素
  4. 用split()分離出實部和虛部
  5. dft()進行傅立葉轉換
  6. magnitude()獲取頻譜
  7. phase()獲取相位角度
  8. GaussianBlur()平滑圖像

4.執行結果:

原圖:


頻譜圖:



相位:


平滑後圖像:








2022年3月24日 星期四

s1081411 作業3

作業說明:

線條自畫像 (二值化與邊緣偵測 Image Thresholding and Edge Detection)
以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE) 
(a)利用 Sobel Operators 偵測並輸出邊緣成分圖 
(b)設計一個類似素描線條的自畫像圖案。

開發環境:

·     Windows 10

·     Visual Studio 2019

·     OpenCV 4.5.5

·     C++

實作方法:

以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE) ,對灰階圖片座高斯模糊,減少雜訊,利用 Sobel Operators 對x方向,y方向處理,再將兩張圖用addweighted合併,255減去灰階值將黑白反轉,最後用threshold二值化。






2022年3月3日 星期四

s1081411 作業2

 

作業說明

主題: 圖像旋轉 (Image Rotation)
 撰寫一個程式將一張圖像的(a)整張圖像,(b)中心內切圓區域,旋轉一個角度(逆時針旋 轉 0 度至 359 度):利用一個滑動條(trackbar)控制旋轉角度。

作業環境

  • Windows 10
  • OpenCV 4.5.5
  • Visual Studio 2019

實作

輸入圖片,選擇是要整張圖片旋轉或是只有內切圓旋轉。
整張圖片旋轉,用trackbar獲取旋轉的角度,getRotationMatrix2D和warpAffine使圖片旋轉。
只有內切圓旋轉,先將圖片分割成內切圓和內切圓外的兩張圖片,再將內切圓做旋轉,最後用addweighted將兩張圖合併,就能達到只有內切圓旋轉的效果了。
執行結果







2022年2月24日 星期四

s1081411 作業1

 

作業說明

撰寫一個程式讀取ㄧ張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入 圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變 每個像素的 R 值。 注意修改後像素值溢位 Overflow 問題(像素值介於 0 與 255 之間)。

作業環境

  • Windows 10
  • OpenCV 4.5.5
  • Visual Studio 2019

實作

輸入要更改的圖片,用imread()讀入,再輸入要更改的亮度值,先利用通道數來判斷圖片是灰階圖或者是彩圖,若灰階圖讀近來是三通道則再利用比對b,g,r來判斷是否是灰階圖,若是灰階圖,b,g,r三個數值皆需要做更改,反之,若是彩圖只需要依照題目需求更改r值,imshow()將圖片輸出,destroyWindow()將視窗關閉。

執行結果:
                                  
                         原圖              +100             -100