2022年5月14日 星期六

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中可以看出兩者呈現就也有所差異,所以應該是在公式換算部分有錯誤,但已經根據公式計算,經過查找資料還是找不到錯誤在哪。


沒有留言:

張貼留言