2022年5月15日 星期日

s1081409 作業5

 一、作業說明

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


二、開發環境

Win11

VS2022

OpenCV 4.5.5

C++


三、實作方法

1.imread()讀取圖片

2.cvtColor()把圖片轉換成HSV

3.設定黃色的上下界

4.用inRange()擷取出黃色

5.跟原圖做比對把黃色區域單獨顯示出來


四、執行結果

1.轉成HSV


2.inrange後效果

3.結果






2022年5月14日 星期六

s1081543作業 5

 作業說明:

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

開發環境:

  •       Window10   
  •       Microsoft Visual Studio 2019
  •       C++
  •       OpenCv 4.5.5

程式說明:

    (1)

  1. 輸入圖片名稱或路徑(如要輸入名稱請把圖片和.cpp檔放一起)
  2. 將圖片以RGB形式讀取
  3. 利用公式自一個RGB圖轉換為HSI形式的函數
    • 3.1公式:
  4. 自行設定黃色的區域(上限&下限)
    • 4.1參考圖:

  5. 使用inrange()將圖片二值化(上下限中設定為白色,其餘為黑色)製作Mask
  6. 使用for迴圈將原圖Mask中白色的部分保留得出結果

執行結果:

原圖




HSI



二質化



結果





參考資料:

s1083344 作業5

 這次的作業要將圖片中的黃色花朵範圍標註出來,於是我很直接地使用了RGB的範圍下去土法煉鋼。程式部分如下:
(黃色的範圍是我用小畫家的調色盤調出來的,就是我們認知範圍的那個黃色)






之後的執行結果如下:

















s1083327 作業5

1.作業說明:

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

2.開發環境:

Windows 10 + Visual Studio 2019 + Open CV 4.5.5  

3.實作方法:

1.輸入圖片名稱與格式 

2. COLOR_BGR2HSV 讀取HSV圖片 

3.使用 inRange()得到二值化的mask 

4.使用 bitwise_and()得到黃花部分 

5.顯示處理後的圖 


4.執行結果

原圖:


二值化:

結果:



s1081408 作業5


  

  • 1. 開發環境: 

      • Windows 10 
      • OpenCV 4.5.5 
      • Visual Studio 2022
      • 語言C++

 

  • 2. 作業說明: 

      • Color SpaceTransformation: 撰寫一個程式將圖像的黃色花瓣區域顯示出來。

  • 3. 程式功能: 

      • 讀取圖片:輸入圖片路徑後,若路徑存在,使用imread(IMG_PATH, -1)把圖片讀進來。若路徑不存在則提示使用者並結束程式。 
      • RGB圖片轉換成HSI形式:
        • 轉換公式:
                    
          1. BGR需要先經過normalize: [0,255] --> [0,1]
          2. 根據公式算出HSI
          3. HSI分量都擴充到[0,255]區間以便顯示結果。
      • 擷取想要的黃色花瓣區域:
        1. 設定黃色花瓣區域HSV值的上下限。
        2. inRange() color picker: 以hsi圖像、HSV數值上下限當作輸入,每個通道的像素值都必須在規定的上下限的範圍內因此用此函數可以把我們想要的黃色花瓣區域擷取出來。位於區間的像素值設為255(白),位於區間外的值設為0(黑)
        3. 輸出的矩陣是二值化之後的圖像。
      • 將二值化圖像和原圖合併:
        1. cvtColor()將二值化圖像先轉換成BGR圖像。
        2. bitwise_and()將原圖和二值化圖像的白色區域合併,得到黃色花瓣區域。
      • imshow()顯示操作後結果,waitKey()等待使用者按任意鍵後關閉視窗,使用者可再次輸入圖片,回到步驟1 
  •  


    4. 執行結果 


    • 原圖:
                            
    • HSI:
                
    • 二值化:
                
    • 結果:
                






s1073328 作業5

    

    1. 作業說明:


  • Color Space Transformation

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


    2. 開發環境:


    • Windows 10

    • Visual Studio 2017

    • OpenCV 4.5.5


    3. 程式流程:


  • 首先,輸入圖片完整路徑及名稱。利用imread(path, -1)讀取圖片。

                    👉 若是讀取失敗,將跳出提示,並結束程式。

                        

  • 程式碼分成兩種模式實現目的:(1)使用內建函式。(2)根據公式自定義一個RGB轉HSV函式。

  • (1)使用內建函數。
    • 利用ctvColor(src, dst, COLOR_BGR2HSV)將BGR轉成HSV,以利處理。
    • 設定黃色花瓣區域的HSV顏色上下界值,並利用inRange()擷取指定範圍的遮罩。
    • 利用bitwise_and()藉由遮罩及原圖,將黃色花瓣區域擷取出來。
                

  •  (2)根據公式自定義一個RGB轉HSV函式
                    

    • 呼叫自訂義函數RGBtoHSV(),根據公式將圖片轉成HSV。
                                                    
BGR轉HSV公式

BGR轉HSV程式碼

    • 利用for迴圈讀取每個點,並設定目標範圍遮罩。
            
建立mask

    • 將黃色花瓣部分擷取出來。

  • 最後,利用imshow()將原圖、HSV圖以及黃色花瓣區域圖顯示出來。
                

    4. 執行結果:

    原圖

    ctvColor()生成之HSV圖


    黃色花瓣區域擷取結果


    自訂義函數BGRtoHSV()生成之HSV圖


    黃色花瓣區域擷取結果


    自訂義函數所呈現擷取結果效果較差,在HSV中可以看出兩者呈現就也有所差異,所以應該是在公式換算部分有錯誤,但已經根據公式計算,經過查找資料還是找不到錯誤在哪。


2022年5月13日 星期五

s1061551 作業5

1.   作業說明:

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

 

2.   作業環境:

Windows 10

Python 3.9

OpenCV 4.5.5

 

3.   實作環境:

(1)    imread讀取所要求的圖片

(2)    使用cvtColor( )RGB圖像轉換至HSV

(3)    運用numpy函式抓取HSV黃色部分的範圍

(4)    使用inRange( )得到HSV黃色的上下界

(5)    最後利用bitwise_and( )將花瓣白色部分還原成原本黃色的樣子

4.   執行結果:

原圖:


結果: