the findTransformECC function in Opencv-3.0.0 returns a NaN as the ECC value

asked 2015-09-24 21:26:55 -0500

desri gravatar image


I am using findTransformECC function (ecc.cpp) from Opencv-3.0.0 beta version. I have build the libraries with Intel's Integrated Performance Primitives (IPP) libraries. I am using this for image stabilization from a series of frames of a video. Occasionally, the ecc.cpp function returns a nan. It is surprising that when I see the code, there is no where a NaN is returned. I can only see an exception raised, but no where I see the function returns a NaN.

Could some please let me know if they have experienced this behavior before? Is the findTransformECC function thread safe? Are multiple threads manipulating data between them?

Thanks is advance.

edit retag flag offensive close merge delete


I think that is some kind of division by 0. But have no idea about ECC :) Have you tried it on different images? Is it a special case? can you post the images used as input? Or the code and the used images?

thdrksdfthmn gravatar imagethdrksdfthmn ( 2015-09-25 02:56:45 -0500 )edit


Thanks for your interest. I share your same opinion that some kind of divide by zero is occurring. However, the occurrence of nan is not systematic. It occurs randomly between a pair of images but not consistently. I am calling the findTransformECC to correct video motion/shake. I am curious when we thread the findTransformECC, the function picks wrong images to compare than what I want to compare.

Unforturnately, I cannot share images with you, as I am working with a confidential material.


desri gravatar imagedesri ( 2015-09-25 09:54:58 -0500 )edit