2011-12-14 33 views
0

我需要爲每個元素分割IplImage另一個。如果我使用3 IPL_DEPTH_8U圖像它的工作原理,但如果我使用3 IPL_DEPTH_32F圖像我得到一個錯誤Cv ::異常在內存位置... 代碼只是 cvDiv(im1,im2,im3); 我敢肯定這3張圖片,錯誤在cvDivcvDiv C++與IplImage(float)

+1

他們都需要有相同的類型和大小。 – karlphillip 2011-12-14 15:49:17

+0

您可以發佈您正在使用的代碼的完整相關部分嗎? – mevatron 2011-12-14 15:54:20

回答

0

他們都需要有相同的類型和大小,並且必須是單通道。

cvDiv()適用於陣列,這意味着如果您的圖像具有多個通道,您將不得不爲每個通道單獨重複此操作以使其工作。

發生了什麼是最有可能當你的圖像是IPL_DEPTH_8U他們正在存儲灰度圖像,這意味着單通道。這就是它工作的原因。

當它們是IPL_DEPTH_32F時,它們可能是有顏色的,這意味着它們有3個通道(RGB)。這就是爲什麼你會收到錯誤。

如果您想知道如何分別處理每個通道,請撥打check this message