2013-07-24 6 views
0

Je veux afficher plusieurs images dans différentes fenêtres séparément dans OpenCV avec C API. Voici mon code, où j'ai fait une boucle pour montrer la même image plusieurs fois jusqu'à ce que la boucle tourne. Quelqu'un peut-il me dire pourquoi mon code plante après avoir montré seulement la première image? Voici mon code pour la boucle:afficher plusieurs images dans une fenêtre différente dans OpenCV

for(x = 0; x <= 5;x++) 
{ 

    IplImage* dst = cvCreateImage(cvSize(src->width, src->height), src->depth, 3); 
    IplImage* dstRGB[3]; 

    for (int i = 0; i < 3; i++) 
    { 
     rgb[i] = cvCreateImage(cvSize(src->width, src->height), src->depth, 1); 
     dstRGB[i] = cvCreateImage(cvSize(src->width, src->height), src->depth, 1); 
    } 

    cvSplit(src, rgb[0], rgb[1], rgb[2], NULL); 

    for (int i = 0; i < 3; i++) 
    { 
     cvFilter2D(rgb[i], dstRGB[i], rgb2); 
    } 

    cvReleaseMat(&rgb2); 
    cvMerge(dstRGB[0], dstRGB[1], dstRGB[2], NULL, dst); 

    cvNamedWindow("dst", 1); 
    cvShowImage("dst", dst); 

    //cvSaveImage("output.png", dst); 

    cvReleaseImage(&dst); 

    for (int i = 0; i < 3; i++) 
    { 
     cvReleaseImage(&rgb[i]); 
     cvReleaseImage(&dstRGB[i]); 
    } 

    cvWaitKey(0); 
    } // for loop ends 

    cvReleaseImage(&src); 

    cvDestroyWindow(argv[5]); 
    cvDestroyWindow("dst"); 

Après est l'erreur, il montre après l'affichage de la première image

OpenCV Error: Assertion failed (anchor.inside(Rect(0, 0, ksize.width, ksize.height))) in normalizeAnchor, file /home/Documents/opencv-2.4.5/release/modules/imgproc/precomp.hpp, line 90 terminate called after throwing an instance of 'cv::Exception' what(): /home/ocuments/opencv-2.4.5/release/modules/imgproc/precomp.hpp:90: error: (-215) anchor.inside(Rect(0, 0, ksize.width, ksize.height)) in function normalizeAnchor Aborted (core dumped) 
+0

Où se bloque-t-il? Veuillez également renommer n'importe quoi avec "rgb" en "bgr". –

+0

s'il vous plaît mettre votre code complet, de cette façon, nous pouvons peut-être nous pouvons le résoudre – Khashayar

+0

@Khashayar s'il vous plaît semblant nouvelle question avec un code plus simple http://stackoverflow.com/questions/17851743/i-want-to-display-output-image- in-different-windows – user2567857

Répondre

1

Vous pouvez commencer la fixation de votre boucle principale

for(x = 0; x = 5;x++) 

éventuellement en

for(x = 0; x != 5; x++) 

Tel qu'il est, c'est une boucle sans fin

+0

J'ai édité ma boucle for avec le signe <= mais quand même, il plante après avoir montré la première image..Veuillez voir la mise à jour sur la question et sur le code – user2567857

+0

A quelle ligne se plante-t-il? –

+0

plase voir ma question mise à jour J'ai montré l'erreur qu'il montre après l'affichage de la première image – user2567857

Questions connexes