Bugs in OpenCV

The work I do right now at Rose-Hulman Ventures for Elastic Image involves the use of OpenCV, an open source computer vision library. Earlier this summer we updated from OpenCV 0.9.5 to OpenCV 0.9.7. However, portions of our software quit working after the update. We recently downgraded to 0.9.5 again until we can figure out what the problem is in 0.9.7. Some theories were that internal formats of OpenCV changed and we were relying on certain internals of OpenCV. However, I was invesigating it today and found that there is a problem with 0.9.7’s implementation on cvSetIdentity. That function is supposed to set the diagonal of a matrix to a given number and everything else to zero. The problem is that the same test case code shows that 0.9.7 is only setting position 0, 0 to the value and not the entire diagonal. This is confirmed in three ways. Looking at the internals of the matrix confirms shows this issue as does cvTrace which tells the sum of the diagonal and cvmGetAt which retrieves the element at a given position in the matrix. Hopefully, the issue will get sorted out and we can update to 0.9.7 or later again. That version has a newer chess board detection algorithm that works better when lighting conditions are not ideal.

Leave a Reply

Your email address will not be published. Required fields are marked *