opencv di errore: errore di asserzione (dimensione.larghezza>0 && dimensione.altezza>0) in funzione sconosciuta linea 261

Questo è il mio codice:

#include<opencv\cv.h>
#include<opencv\highgui.h>
using namespace cv;

int main(){
    //create matrix to store image
    Mat image;

    //initialize capture    
    VideoCapture cap(0);
    cap.open(0);

    //create window to show image   
    namedWindow("window",1);

    while(1){   
        //copy webcam stream to image
        cap>>image;

        //print image to screen     
        imshow("window",image); //Error line

        //delay 33ms
        waitKey(33);
    }
}

L’errore che ho fatto io:

opencv error: assertion failed (size.width>0 && size.height>0) in unknown function
file...\opencv\modules\highgui\src\window.cpp line 261

In window.cpp linea 261 è:

CV_Assert(size.width>0 && size.height>0);

Ho risolto il mio problema.
in primo luogo, è possibile aggiungere il codice

VideoCapture cap;
cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 480); 

quindi aggiungere questo codice nel ciclo while:

cap.read(image);

 

2 Replies
  1. 3

    (size.width>0 && size.height>0) significa che c’è un vuoto Mat là. In questo caso, devono essere image è vuoto perché la macchina fotografica non poteva essere aperto. Controllare VideoCapture::open valore di ritorno.

    • grazie, ma questo codice non è mio codice e tutorial video.
    • Il codice utilizza una fotocamera che non può essere lo stesso come nel tutorial.
    • che cosa sono la vostra soluzione. Cosa devo correggere.
    • Controllare VideoCapture::open valore di ritorno.

Lascia un commento