2017-06-20 26 views
-1

我想尝试绘制一条线。但它总是停止工作并显示对话框(继续或中断)。不能在打开的cv 3.xx中绘制一条线

这里我的代码:

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); 
} 

,我得到的错误: OpenCV的错误:断言失败(size.width> 0 & & size.height> 0)

我使用Open CV 3.2在C++中。 visual studio 2015. 有什么建议吗?

+1

你'rute'矩阵具有0宽度和高度为0,因为你永远不正确初始化它。 – Miki

+0

还有一个['imshow'](http://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=waitkey#imshow),没有['waitKey'](http:// docs。 opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=waitkey#waitkey)。阅读文档! –

回答

1

您应该初始化您的矩阵。 这其中工程取管线的例子:

#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

它显示没有错误,但它没有画出线:( – Berlian

+0

它画线在我的情况。也许改变的值。 –

+0

我删除了代码中的一些噪音...希望你不介意 – Miki