C++使用opencv的库文件绘制画布出现闪退问题,以下为测试代码:
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
// 创建黑色画布
Mat img = Mat::zeros(500, 500, CV_8UC3);
// 绘制线条
line(img, Point(150, 0), Point(150, 512), Scalar(255, 255, 255), 4);
// 绘制矩形
// 方法 1
rectangle(img, Point(100, 100), Point(400, 200), Scalar(0, 255, 255), 2);
// 方法 2
rectangle(img, Rect(100, 300, 200, 100), Scalar(0, 255, 0), -1);
// 绘制圆
circle(img, Point(256, 256), 60, Scalar(255, 0, 0), 5);
// 绘制椭圆
// 方法 1
ellipse(img, Point(256, 100), Size(60, 80), 30, 0, 180, Scalar(255, 255, 0), 3);
// 添加文本
putText(img, "opencv", Point(30, 256), FONT_HERSHEY_COMPLEX, 1.0, Scalar(255, 0, 255));
imshow("img", img);
waitKey(0);
return 0;
}
绘制画布时出现了闪退问题,当增加waitKey函数中的参数时,例如waitKey(1000)不会立即闪退。
针对上述问题做如下修改:
代码运行过程中使用vistual studio的Debug版本:
在链接库文件中导入对应的debug版本的库文件即可: