2017-06-20 1 views
-1

Je veux essayer de tracer une ligne. Mais il arrête toujours de fonctionner et affiche la boîte de dialogue (continue ou casse).Impossible de tracer une ligne dans cv ouvert 3.xx

Voici mon code:

int main(int argc, char* argv[]) 
{ 
    namedWindow("rute", CV_WINDOW_AUTOSIZE); 
    Mat rute; 
    line(rute, Point(0, 120), Point(320, 120), Scalar(0, 0, 255), 2, CV_AA); 
    imshow("rute", rute); 
} 

L'erreur que je reçois: erreur OpenCV: assertion a échoué (size.width> 0 & & size.height> 0)

J'utilise Ouvrir CV 3.2 en C++. studio visuel 2015. Y a-t-il une suggestion?

+1

Votre 'matrice rute' a 0 largeur et hauteur 0, puisque vous jamais été correctement initialisés. – Miki

+0

Un ['imshow'] (http://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=waitkey#imshow) sans [[waitKey]] (http: // docs. opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=waitkey#waitkey). Lisez les docs! –

Répondre

1

Vous devez initialiser votre matrice. Voici un exemple de ligne de tirage qui fonctionne:

#include <opencv2\opencv.hpp> 

int main() 
{ 
    cv::Mat r(640, 480, CV_8UC3); 
    cv::line(r, cv::Point(0, 120), cv::Point(320, 120), cv::Scalar(0, 0, 255)); 
    cv::imshow("rute", r); 
    cv::waitKey(0); 
} 
+0

Il ne montre aucune erreur, mais il n'a pas dessiné la ligne :( – Berlian

+0

il dessine la ligne dans mon cas.Peut changer les valeurs –

+0

J'ai enlevé un peu de bruit dans le code ... j'espère que vous ne me dérange pas – Miki