Bonjour,
j'utilise opencv dans un petit programme test simple qui fonctionne tres bien :

#include <opencv/cv.h>
#include <opencv/highgui.h>

int main(int argc, char *argv[])
{
IplImage *img = cvLoadImage("lena.jpg",3);

cvNamedWindow("MyWin",CV_WINDOW_AUTOSIZE);
cvMoveWindow("MyWin", 400, 400);
cvShowImage("MyWin",img);

int k = cvWaitKey(0);

cvDestroyWindow("MyWin");
cvReleaseImage(&img);

return EXIT_SUCCESS;
}


mais lorsque je lance memcheck de valgrind, j'ai le resultat suivant :

==4235== Memcheck, a memory error detector.

==4235== Syscall param write(buf) points to uninitialised byte(s)
==4235== at 0x1BAF13: __write_nocancel (in /lib/libc-2.4.so)
==4235== by 0x27050E: _X11TransWrite (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x276436: (within /usr/lib/libX11.so.6.2.0)
==4235== by 0x27653A: _XReply (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x25C351: XInternAtom (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x26FFEB: XSetWMProperties (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x7B35287: (within /usr/lib/libgdk-x11-2.0.so.0.800.20)
==4235== by 0x7B379E3: gdk_window_new (in /usr/lib/libgdk-x11-2.0.so.0.800.20
)
==4235== by 0x7B14F4C: gdk_display_open (in /usr/lib/libgdk-x11-2.0.so.0.800.
20)
==4235== by 0x7AF3AEE: gdk_display_open_default_libgtk_only (in /usr/lib/libg
dk-x11-2.0.so.0.800.20)
==4235== by 0x78D4BFE: gtk_init_check (in /usr/lib/libgtk-x11-2.0.so.0.800.20
)
==4235== by 0x78D4C33: gtk_init (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==4235== Address 0x4383108 is 128 bytes inside a block of size 16,384 alloc'd
==4235== at 0x40045EB: calloc (vg_replace_malloc.c:279)
==4235== by 0x2611A6: XOpenDisplay (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x7B14E11: gdk_display_open (in /usr/lib/libgdk-x11-2.0.so.0.800.
20)
==4235== by 0x7AF3AEE: gdk_display_open_default_libgtk_only (in /usr/lib/libg
dk-x11-2.0.so.0.800.20)
==4235== by 0x78D4BFE: gtk_init_check (in /usr/lib/libgtk-x11-2.0.so.0.800.20
)
==4235== by 0x78D4C33: gtk_init (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==4235== by 0x4CE947: cvInitSystem (in /usr/lib/libhighgui.so.0.9.9)
==4235== by 0x4CF49F: cvNamedWindow (in /usr/lib/libhighgui.so.0.9.9)
==4235== by 0x80486CF: main (dumb.cpp:28)
==4235==
==4235== Syscall param write(buf) points to uninitialised byte(s)
==4235== at 0x1BAF13: __write_nocancel (in /lib/libc-2.4.so)
==4235== by 0x27050E: _X11TransWrite (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x276436: (within /usr/lib/libX11.so.6.2.0)
==4235== by 0x27700F: _XEventsQueued (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x262C01: XPending (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x7B213FE: (within /usr/lib/libgdk-x11-2.0.so.0.800.20)
==4235== by 0x7B2182E: (within /usr/lib/libgdk-x11-2.0.so.0.800.20)
==4235== by 0x42015C: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.1
000.3)
==4235== by 0x4233EE: (within /usr/lib/libglib-2.0.so.0.1000.3)
==4235== by 0x423954: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.
1000.3)
==4235== by 0x78D4432: gtk_main_iteration_do (in /usr/lib/libgtk-x11-2.0.so.0
.800.20)
==4235== by 0x4CDA6D: cvWaitKey (in /usr/lib/libhighgui.so.0.9.9)
==4235== Address 0x4383234 is 428 bytes inside a block of size 16,384 alloc'd
==4235== at 0x40045EB: calloc (vg_replace_malloc.c:279)
==4235== by 0x2611A6: XOpenDisplay (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x7B14E11: gdk_display_open (in /usr/lib/libgdk-x11-2.0.so.0.800.
20)
==4235== by 0x7AF3AEE: gdk_display_open_default_libgtk_only (in /usr/lib/libg
dk-x11-2.0.so.0.800.20)
==4235== by 0x78D4BFE: gtk_init_check (in /usr/lib/libgtk-x11-2.0.so.0.800.20
)
==4235== by 0x78D4C33: gtk_init (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==4235== by 0x4CE947: cvInitSystem (in /usr/lib/libhighgui.so.0.9.9)
==4235== by 0x4CF49F: cvNamedWindow (in /usr/lib/libhighgui.so.0.9.9)
==4235== by 0x80486CF: main (dumb.cpp:28)
==4235==
==4235== Syscall param write(buf) points to uninitialised byte(s)
==4235== at 0x1BAF13: __write_nocancel (in /lib/libc-2.4.so)
==4235== by 0x27050E: _X11TransWrite (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x276436: (within /usr/lib/libX11.so.6.2.0)
==4235== by 0x2527A0: XFlush (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x7B1447A: gdk_display_flush (in /usr/lib/libgdk-x11-2.0.so.0.800
.20)
==4235== by 0x7B0C679: gdk_window_process_all_updates (in /usr/lib/libgdk-x11
-2.0.so.0.800.20)
==4235== by 0x7846351: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==4235== by 0x41E7A0: (within /usr/lib/libglib-2.0.so.0.1000.3)
==4235== by 0x42015C: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.1
000.3)
==4235== by 0x4233EE: (within /usr/lib/libglib-2.0.so.0.1000.3)
==4235== by 0x423954: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.
1000.3)
==4235== by 0x78D4432: gtk_main_iteration_do (in /usr/lib/libgtk-x11-2.0.so.0
.800.20)
==4235== Address 0x43830A7 is 31 bytes inside a block of size 16,384 alloc'd
==4235== at 0x40045EB: calloc (vg_replace_malloc.c:279)
==4235== by 0x2611A6: XOpenDisplay (in /usr/lib/libX11.so.6.2.0)
==4235== by 0x7B14E11: gdk_display_open (in /usr/lib/libgdk-x11-2.0.so.0.800.
20)
==4235== by 0x7AF3AEE: gdk_display_open_default_libgtk_only (in /usr/lib/libg
dk-x11-2.0.so.0.800.20)
==4235== by 0x78D4BFE: gtk_init_check (in /usr/lib/libgtk-x11-2.0.so.0.800.20
)
==4235== by 0x78D4C33: gtk_init (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==4235== by 0x4CE947: cvInitSystem (in /usr/lib/libhighgui.so.0.9.9)
==4235== by 0x4CF49F: cvNamedWindow (in /usr/lib/libhighgui.so.0.9.9)
==4235== by 0x80486CF: main (dumb.cpp:28)
==4235==
==4235== ERROR SUMMARY: 6 errors from 3 contexts (suppressed: 60 from 1)
==4235== malloc/free: in use at exit: 250,306 bytes in 3,356 blocks.
==4235== malloc/free: 7,026 allocs, 3,670 frees, 2,498,909 bytes allocated.
==4235== For counts of detected errors, rerun with: -v
==4235== searching for pointers to 3,356 not-freed blocks.
==4235== checked 670,820 bytes.
==4235==
==4235==
==4235== 800 bytes in 20 blocks are possibly lost in loss record 76 of 100
==4235== at 0x40045EB: calloc (vg_replace_malloc.c:279)
==4235== by 0x42769D: g_malloc0 (in /usr/lib/libglib-2.0.so.0.1000.3)
==4235== by 0x777790F: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==4235== by 0x7777AA4: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==4235== by 0x777C83C: g_type_register_fundamental (in /usr/lib/libgobject-2.
0.so.0.1000.3)
==4235== by 0x77862CB: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==4235== by 0x77780F0: g_type_init_with_debug_flags (in /usr/lib/libgobject-2
.0.so.0.1000.3)
==4235== by 0x77781F1: g_type_init (in /usr/lib/libgobject-2.0.so.0.1000.3)
==4235== by 0x7AF3C45: gdk_pre_parse_libgtk_only (in /usr/lib/libgdk-x11-2.0.
so.0.800.20)
==4235== by 0x78D4FD0: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==4235== by 0x42CCDC: g_option_context_parse (in /usr/lib/libglib-2.0.so.0.10
00.3)
==4235== by 0x78D4B7B: gtk_parse_args (in /usr/lib/libgtk-x11-2.0.so.0.800.20
)
==4235==
==4235==
==4235== 56,792 bytes in 37 blocks are possibly lost in loss record 100 of 100
==4235== at 0x40044B3: memalign (vg_replace_malloc.c:332)
==4235== by 0x4004509: posix_memalign (vg_replace_malloc.c:384)
==4235== by 0x4365C8: (within /usr/lib/libglib-2.0.so.0.1000.3)
==4235== by 0x437003: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.1000.3)
==4235== by 0x437154: g_slice_alloc0 (in /usr/lib/libglib-2.0.so.0.1000.3)
==4235== by 0x777F279: g_type_create_instance (in /usr/lib/libgobject-2.0.so. 0.1000.3)
==4235== by 0x7767011: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==4235== by 0x7764E69: g_object_newv (in /usr/lib/libgobject-2.0.so.0.1000.3)
==4235== by 0x776593E: g_object_new_valist (in /usr/lib/libgobject-2.0.so.0.1 000.3)
==4235== by 0x7765AEF: g_object_new (in /usr/lib/libgobject-2.0.so.0.1000.3)
==4235== by 0x7B14E37: gdk_display_open (in /usr/lib/libgdk-x11-2.0.so.0.800. 20)
==4235== by 0x7AF3AEE: gdk_display_open_default_libgtk_only (in /usr/lib/libg dk-x11-2.0.so.0.800.20)
==4235==
==4235== LEAK SUMMARY:
==4235== definitely lost: 0 bytes in 0 blocks.
==4235== possibly lost: 57,592 bytes in 57 blocks.
==4235== still reachable: 192,714 bytes in 3,299 blocks.
==4235== suppressed: 0 bytes in 0 blocks.

==4235== Reachable blocks (those to which a pointer was found) are not shown.
==4235== To see them, rerun with: --show-reachable=yes

Quelqu'un a t'il une idée d'ou cela peut il venir, et cmt y remedier?