我正在使用这个程序来读取和显示图像。
我不知道为什么它会显示这个奇怪的错误:



我更改了一些图像,有时它运行没有错误,但是,即使它运行和所有内容,它也显示窗口而不是其中的图像。怎么了?

#include "stdafx.h"
#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"


using namespace cv;
using namespace std;

void main()
{

    Mat leftImg,frame=imread("C:\\Users\\user\\Downloads\\stereo_progress.png");
    leftImg=imread("C:\\Users\\user\\Downloads\\dm_sl.gif");//add of left camera


    cvtColor(leftImg,leftImg,CV_BGR2GRAY);
    imwrite("imreadtest.txt",leftImg);


    imshow("cskldnsl",leftImg);
    getchar();
}

最佳答案

  • 正如其他人回答的那样,确保 cvtColor 中的参数 1 不是 1 channel 图像。通过 type() 检查它。它应该是 CV_8UC3 等等。
  • waitKey 放在 imshow 之后。图像将出现。
  • 我不知道你为什么要在 imreadtest.txt 中保存 leftImg 。 [虽然它没有犯错误。]
  • 关于c++ - 断言在未知函数中失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15972059/

    10-12 14:56