2022年5月14日 星期六

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:
                
    • 二值化:
                
    • 結果:
                






沒有留言:

張貼留言