写了一个图像读取后显示出来的小测试
代码如下:
#include<iostream>
#include<fstream>
#include"cv.h"
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat src, mark;int currentFrame = 30;stringstream str;bool flags = true;while (flags){
str << currentFrame << ".jpg";src = imread("D:\\src\\" + str.str());mark = imread("D:\\mark\\" + str.str());imshow("src", src);imshow("mark", mark);waitKey(0);system("pause");}
}
运行后错误如下:
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file C:\builds\master_PackSlave-win32-vc12-shared\opencv\modules\highgui\src\window.cpp, line 271
解决方案:把str<<currentFrame 放在循环函数while()外围就可以了。
#include<iostream>
#include<fstream>
#include"cv.h"
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat src, mark;int currentFrame = 30;stringstream str;bool flags = true;str << currentFrame << ".jpg";while (flags){
src = imread("D:\\src\\" + str.str());mark = imread("D:\\mark\\" + str.str());imshow("src", src);imshow("mark", mark);waitKey(0);system("pause");}
}
对于上述错误只找到了解决方案,但是还没有找到合理的解释,先这样吧,后面找到了补充。