<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to bugs</title><link href="https://sourceforge.net/p/libsift/bugs/" rel="alternate"/><link href="https://sourceforge.net/p/libsift/bugs/feed.atom" rel="self"/><id>https://sourceforge.net/p/libsift/bugs/</id><updated>2012-09-26T13:15:44Z</updated><subtitle>Recent changes to bugs</subtitle><entry><title>Bad OpenMP detection with some compilers</title><link href="https://sourceforge.net/p/libsift/bugs/5/" rel="alternate"/><published>2012-09-26T13:15:44Z</published><updated>2012-09-26T13:15:44Z</updated><author><name>Julien Malik</name><uri>https://sourceforge.net/u/julienmalik/</uri></author><id>https://sourceforge.net05b3d42558f813c917468a77720863dc51da9561</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I encountered problems with the OpenMP detection routine from the CMakeLists.&lt;/p&gt;
&lt;p&gt;I had problem with the Intel Compiler on linux, and now I have the same problem when compiling on MacOSX 10.8 with the default compiler (clang).&lt;br /&gt;
CMake provides the necessary find_package for OpenMP, and it solves the issue.&lt;/p&gt;
&lt;p&gt;More specifically, replacing line 273 to 306 of CMakeLists.txt with much simpler :&lt;/p&gt;
&lt;p&gt;# check for OpenMP&lt;br /&gt;
find_package(OpenMP)&lt;br /&gt;
if(OPENMP_FOUND)&lt;br /&gt;
message(STATUS "Enabling OpenMP support")&lt;br /&gt;
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")&lt;br /&gt;
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")&lt;br /&gt;
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")&lt;br /&gt;
else()&lt;br /&gt;
message(STATUS "Disabling OpenMP support")&lt;br /&gt;
endif()&lt;/p&gt;
&lt;p&gt;does the trick.&lt;/p&gt;
&lt;p&gt;Compilation goes on for MacOSX 10.8/clang (no openmp found).&lt;br /&gt;
Also tested on linux, where openmp is activated correctly.&lt;br /&gt;
Did not yet try with Intel Compiler though.&lt;/p&gt;
&lt;p&gt;Seems safer to me as it tests more flags than current libsiftfast, and also actually runs a try_compile with OpenMP code to validate.&lt;/p&gt;
&lt;p&gt;No idea about the "gomp" library that is linked in the libsiftfast CMakeLists, and does not come out of the FindOpenMP.cmake file.&lt;br /&gt;
Looking at &lt;a href="http://gcc.gnu.org/onlinedocs/libgomp/Enabling-OpenMP.html#Enabling-OpenMP" rel="nofollow"&gt;http://gcc.gnu.org/onlinedocs/libgomp/Enabling-OpenMP.html#Enabling-OpenMP&lt;/a&gt;&lt;br /&gt;
it seems that the compiler flag is enough and triggers automatic linking to OpenMP lib on gcc.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Assertion fails</title><link href="https://sourceforge.net/p/libsift/bugs/4/" rel="alternate"/><published>2011-07-22T12:49:15Z</published><updated>2011-07-22T12:49:15Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net6c1a8f7f4e4c2badf2fc30a5cbbfa42a98b0ea63</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I get the following error using libsiftfast:&lt;/p&gt;
&lt;p&gt;libsiftfast-1.2-src/libsiftfast.cpp:1645: void PlaceInIndex(float*, float, float, float, float): Assertion `newrow &amp;gt;= -1 &amp;amp;&amp;amp; newrow &amp;lt; 4 &amp;amp;&amp;amp; neworient &amp;gt;= 0 &amp;amp;&amp;amp; neworient &amp;lt;= 8 &amp;amp;&amp;amp; rfrac &amp;gt;= 0 &amp;amp;&amp;amp; rfrac &amp;lt; 1' failed.&lt;/p&gt;
&lt;p&gt;I'll try to look into it in more detail...&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Segmentation fault on small images</title><link href="https://sourceforge.net/p/libsift/bugs/3/" rel="alternate"/><published>2010-05-16T14:51:45Z</published><updated>2010-05-16T14:51:45Z</updated><author><name>Per Christian Moen</name><uri>https://sourceforge.net/u/pcmoen/</uri></author><id>https://sourceforge.net8c004db0bb4a7f831547acdb0f86015c9c747f7b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Siftfast has a tendency to crash on small images. I've attached a random generated image that is 28 by 1 pixel image that crashes both version 1.2 and revision 52.&lt;/p&gt;
&lt;p&gt;The backtrace from GDB is:&lt;br /&gt;
(gdb) bt&lt;br /&gt;
#0  0x0000000000406ab4 in _mm_loadu_ps (.omp_data_i=0x7fffe7aa38e0) at /usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/xmmintrin.h:906&lt;br /&gt;
#1  ConvVerticalFast.omp_fn.3 (.omp_data_i=0x7fffe7aa38e0) at /home/pcmoen/Source/libsift-trunk/libsiftfast.cpp:964&lt;br /&gt;
#2  0x000000000040752c in ConvVerticalFast (image=0x6a5220, kernel=&amp;lt;value optimized out&amp;gt;, ksize=&amp;lt;value optimized out&amp;gt;) at /home/pcmoen/Source/libsift-trunk/libsiftfast.cpp:911&lt;br /&gt;
#3  0x0000000000407c81 in GaussianBlur (imgdst=0x6a5220, image=0x6a5220, fblur=&amp;lt;value optimized out&amp;gt;) at /home/pcmoen/Source/libsift-trunk/libsiftfast.cpp:648&lt;br /&gt;
#4  0x0000000000409815 in GetKeypointsInternal (porgimage=&amp;lt;value optimized out&amp;gt;) at /home/pcmoen/Source/libsift-trunk/libsiftfast.cpp:330&lt;br /&gt;
#5  0x000000000040a64f in main (argc=&amp;lt;value optimized out&amp;gt;, argv=&amp;lt;value optimized out&amp;gt;) at /home/pcmoen/Source/libsift-trunk/siftfast.cpp:121&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Using large image will crash the DLL</title><link href="https://sourceforge.net/p/libsift/bugs/2/" rel="alternate"/><published>2010-04-06T10:18:40Z</published><updated>2010-04-06T10:18:40Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.neta7074700e8fcdd1258c43d8f38f4ae52866dda5f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;br /&gt;
If you try to call "GetKeypoints( );" with a large image, the DLL will crash without any message. The bug is present from version 1.0 until 1.2 included!&lt;/p&gt;
&lt;p&gt;Are you aware of this behavior?&lt;br /&gt;
Smaller images (2000px  x  3000px) will also crash.&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>May be a buf of GaussianBlur</title><link href="https://sourceforge.net/p/libsift/bugs/1/" rel="alternate"/><published>2009-12-25T09:18:02Z</published><updated>2009-12-25T09:18:02Z</updated><author><name>Water Lin</name><uri>https://sourceforge.net/u/waterlin/</uri></author><id>https://sourceforge.net220b437eb728d854febf5e7649f0c07225c7bcba</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I find that the result of SSE GaussianBlur function is not very perfect comparing to the result of OpenCV cvSmooth.&lt;/p&gt;
&lt;p&gt;I read image from cvLoadImage and convert it to ImageSt in libsiftfast. Then I use GaussianBlur like following:&lt;br /&gt;
----------------&lt;br /&gt;
GaussianBlur(dimage, image, sqrtf(InitSigma*InitSigma - fnewscale*fnewscale));&lt;br /&gt;
----------------&lt;/p&gt;
&lt;p&gt;I also convert the result back to OpenCV image structure IplImage and then show the image.&lt;/p&gt;
&lt;p&gt;The image smoothed by GaussianBlur in libsiftfast is not very perfect comparing to the result of OpenCV cvSmooth. I think there may be some bugs in SSE GaussianBlur.&lt;/p&gt;
&lt;p&gt;I attach two pictures to show this difference. Picture after_opencv_cvsmooth.jpg is smoothed by OpenCV cvSmooth and picture after_Gaussianblur.jpg is smoothed by libsiftfast GaussianBlur.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>