OpenCV: умножение изображений в C ++ и C

Я только что использовал функции умножения, используя C api (cvMul) и C ++ api (mul и multiply). Но я получаю другой результат от функции C и C ++

Результат cvMul (это белое изображение)Результат множителя и умножения

Вот код, который я использую для обеих реализаций:

C

IplImage * gh = cvCreateImage(cvGetSize(input),IPL_DEPTH_32F,1) ;
cvSobel(input,gh,1,0) ;

IplImage * gh2 = cvCreateImage(cvGetSize(input),IPL_DEPTH_32F,1) ;
cvMul(gh,gh,gh2) ;

C ++

Mat gh = Mat (input.size(), CV_32FC1);
Sobel(input, gh, CV_32FC1, 1, 0);

Mat gh2 = Mat (input.size(), CV_32FC1);
gh2 = gh.mul(gh); // multiply (gh, gh, gh2);  

Входное изображение одинаково, и когда я проверяю горизонтальный градиент, оно также одинаково для обеих реализаций, так почему умножение даст разные результаты? (Я заинтересован в получении результата реализации C)

Ответы на вопрос(0)

Ваш ответ на вопрос