我在学校项目中使用OpenCV。
当我使用OpenCV的“基础”时,我的所有程序都能正常工作,但是当我必须进行“大”图像处理时 - 例如使用findContours()或HoughLines或HoughLinesP,我的程序崩溃......
你知道为什么吗?
编辑:代码:
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main() {
cout << "lol";
IplImage* image = cvLoadImage("frame3.jpg", 0);
cout << "bas";
cvWaitKey(3000);
Mat src(image);
Mat color_dst;
cout << "la3";
imshow("source", src);
cout << "la4";
waitKey(3000);
cout << "la5";
vector<Vec4i> lines;
HoughLinesP(src, lines, 1, CV_PI / 180, 80, 30, 10);
cout << "la6";
for (size_t i = 0; i < lines.size(); i++) {
line(color_dst, Point(lines[i][0], lines[i][1]),
Point(lines[i][2], lines[i][3]), Scalar(0, 0, 255), 3, 8);
}
imshow("io", color_dst);
cvWaitKey(5000);
}
非常感谢:)
答案 0 :(得分:1)
我认为它会崩溃,因为你建议行例程为未构造的图像画一条线。
Mat color_dest
dows不会创建图像缓冲区。使用具有图像大小和类型的构造函数之一。