2016-05-28 101 views
0

我正在做一些圖像處理,並在白色圖像上有黑色的形狀。正確使用findContours()我需要黑色圖像上的白色形狀。圖像處理與openCV,顏色變化

  1. 有沒有辦法改變openCV設置來跟蹤白色背景上的黑色形狀呢?
  2. 我設法找到圖像的白色部分使用inrange()我將其更改爲其他顏色,然後將黑色部分更改爲白色,然後再將第一部分改爲黑色,全部使用inrange()。但是有沒有更簡單的方法來將圖像上的所有黑色同時轉換成白色和白色到黑色?
+0

您可以簡單地嘗試使用'CV :: bitwise_not'反轉圖片。 – ZdaR

+0

謝謝,這就是我一直在尋找:) –

+0

或者如果你有一個8位圖像,只是寫'圖像= 255 - 圖像'。 – Sunreef

回答

0

CV_8UC1類型的binary_image開始:

  1. 可以使用binary_not(由@ZdaR所建議的):

    binary_not(binary_image, binary_image); 
    
  2. 反轉用aritmtetic操作的值(如由@Sunreef提供):

    binary_image = 255 - binary_image; 
    
  3. 或使用而不是邏輯運算符~

    binary_image = ~binary_image; 
    

    這可以是一個很好的快捷方式,如果你只需要顛倒值的特定功能,如:

    findContours(~binary_image, ...);