2013-08-02 51 views
0

我有2個Mat圖像,其中一些圖像有點差異。我想爲每個像素找到最大值並顯示它們。我寫在Visual C這段代碼++ 2010(控制檯):在opencv中使用imshow顯示max()函數的結果

Mat dst; 
max(result0, result1, dst); 
imshow("dst", dst); 

,並完美地顯示圖像DST,但是當我在窗口複製這個代碼的形式,我收到此錯誤:「錯誤C2440:‘?’ :無法從「CV :: MatExpr」到「布爾」轉換「所以我改變了代碼,以這樣的:

Mat dst; 
max(&result0, &result1, &dst); 
imshow("dst", dst); 

,但處於運行時間出現了這個錯誤: 」類型的未處理的異常「System.Runtime .InteropServices.SEHException'發生在OpenCVProject.exe中 附加信息:外部組件已引發異常。「

請幫我展示圖片。 在此先感謝

+0

是大小和結果0的類型和結果1一樣嗎? –

+0

是的,事實上,我在源圖像上創建了兩個filter2D –

回答

0

我認爲存在名稱空間衝突。 嘗試指定如下命名空間:

CV ::最大

+0

不幸的是,它沒有奏效。現在還有2個錯誤:「錯誤C2589:'(':'::'上的非法令牌'和'錯誤C2143:語法錯誤:缺少';'之前'::'」 –

+0

您可以嘗試使用C API的函數cvMax,但首先你必須將cv :: Mat轉換爲IplImage *。 –

1

我也遇到了這樣的問題;我發現這是導致此problem.so您可以添加這個minwindef.h:

#undef max 
#undef min 

下面的頭文件(#include < ...>),然後你可以成功使用cv :: max。

0

至於建議由德凱添加以下,但之後使用using namespace標題爲我工作

#undef max 
#undef min 
相關問題