当前位置: 代码迷 >> 综合 >> OpenCV imread()和show()出现的bug
  详细解决方案

OpenCV imread()和show()出现的bug

热度:55   发布时间:2024-02-20 16:25:13.0

写了一个图像读取后显示出来的小测试
代码如下:

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

对于上述错误只找到了解决方案,但是还没有找到合理的解释,先这样吧,后面找到了补充。

  相关解决方案