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

Tags: , ,

AddThis Social Bookmark Button

4 Responses to “Problems with SSE2 in OpenCV”

  1. azkuene Says:

    Thanks, that solves my problem with OpenCV pre1.1a

  2. sajja Says:

    The application failed (0xc0150002)

    Pentium(R)4 CPU 3.00GHz

    it still
    The application failed (0xc0150002)

  3. admin Says:

    2sajja, Pentium 4 has SSE2 instruction set, you don’t need this patch. Your error seems to be not related to the described one.

  4. ramon Says:

    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 0x1005691a (cv110.dll) in…
    Please, could you say me how to solve this fault?
    Thank you very much. Ramon

Leave a Reply