Problems with SSE2 in OpenCV
When I tried to use some methods from OpenCV library (for example CvResize()) in my MS Visual Studio 2005 project I encountered with errors in cxtypes.h header file near
#if CV_SSE2 __m128d t = _mm_load_sd( &value ); int i = _mm_cvtsd_si32(t); return i - _mm_movemask_pd(_mm_cmplt_sd(t,_mm_cvtsi32_sd(t,i))); #else ....
These errors were related with SSE2. The problem is that my AMD Sempron 2200+ family 6 (x86 family 6 model 8 ) processor do not support SSE2 instructions. SSE – Streaming SIMD Extensions 2 are extends on MMX instructions to operate on special registers to increase computational speed in some cases.
To fix these problems you need to set CV_SSE2 variable to 0 in cxcore’s cxtypes.h (near 65 line).
For example like here:
// #if defined WIN32 && (!defined WIN64 || defined EM64T) && // (_MSC_VER >= 1400 || defined CV_ICC) // || (defined __SSE2__ && defined __GNUC__ && __GNUC__ >= 4) // #include // #define CV_SSE2 1 // #else #define CV_SSE2 0 // #endif
June 6th, 2009 at 2:38 pm
Thanks, that solves my problem with OpenCV pre1.1a
June 28th, 2009 at 9:13 pm
The application failed (0xc0150002)
Pentium(R)4 CPU 3.00GHz
it still
The application failed (0xc0150002)
June 28th, 2009 at 10:06 pm
2sajja, Pentium 4 has SSE2 instruction set, you don’t need this patch. Your error seems to be not related to the described one.
February 20th, 2010 at 3:23 pm
Hello,
Thank you very much for your answer. It has solved the problems that I had with my Pentium 3. However, when I use the cvTemplateMatch function I have an exception, just in the line: blocksize.width = cvRound(templ->cols*block_scale); –> Unhandled exception at 0×1005691a (cv110.dll) in…
Please, could you say me how to solve this fault?
Thank you very much. Ramon