2017-02-21 35 views
2

的C++函數是:OpenCV的:參數在時刻含義功能

矩的時刻(InputArray陣列,布爾binaryImage =假)

第一個我明白它是什麼,對於第二它說:

binaryImage - 如果它是true,所有非零圖像像素被視爲 1。該參數僅用於圖像。

這是什麼意思?我只說二進制圖像是真的,非二進制圖像是真的?在我的應用程序中,我使用二進制圖像來計算簡單的時刻。

回答

2

這意味着,如果該值爲true你插入的圖片將被視爲是一個二進制圖像。這意味着即使你是大於1的,他們將被視爲1

我(值的x,y)> 0 = 1

I(X,Y)== 0 = 0

如果插入的值爲false比時刻的值將取實值到時刻計算。

例如可以說有以下3X3圖像:

M00這是圖像的面積將是:

如果該標記爲真,則比我們有4個像素非零並且該值將爲4.

如果該標誌爲假,我們將有100 + 10 + 10 + 1 = 121

什麼時候應該使用什麼?

可以說我們的圖像中有一個斑點。 如果我們將圖像視爲二進制圖像,那麼時刻會給我們提供關於圖像塊的空間信息。 例如,m01/m00和m10/m00會給出物體質心。

但是,如果我們將圖像視爲不是二進制的,我們會比矩片給我們紋理/顏色信息。 例如m00 /(斑點中的像素數量)=斑點的平均顏色。

+0

基於此,我測試了一些東西。我的輸入圖像是二進制圖像。所以,如果我讓虛假的,它將是因爲它是一個0和1圖像。如果我說的是真的,它應該保持不變,對吧?所以他們的輸出應該是相同的。如我錯了請糾正我。但事實並非如此。爲什麼? – Alex

+0

我再次閱讀文檔並更正了我的答案。看一看。 –

+0

現在我明白了,謝謝。我認爲這只是一個方面問題。如果我想用一個二進制文件作爲我的時刻的輸入,那麼如果我採用「真實」參數,它將會減少內存消耗。我想.. – Alex