在vs2019配置opencv运行中出现了0x00007FFA1BFA4F69,代码本身是没有问题的,但是一开始运行就会弹出另一个窗口问题然后运行窗口卡死
这是我的代码
#include <iostream>
using namespace std;
#include <opencv.hpp>
#include <highgui.hpp>
using namespace cv;
int main()
{
int nx = 200;//图片宽度(单位为像素)
int ny = 200;//图片高度(像素)
//写入文件头
std::cout << "P3" << std::endl << nx << " " << ny << std::endl << "255" << std::endl;//P3表示颜色为ASCII,255是最大颜色
//预览窗口
int WidowWidth;//窗口宽度
int WindowHeight;//窗口高度
if (nx > ny)//图片为横板,计算高度与宽度
{
WindowHeight = 1080 - 200;
WidowWidth = (int)((double)WindowHeight * (double)nx / (double)ny);
}
else //图片为竖版
{
WidowWidth = 1920 - 200;
WindowHeight = (int)((double)WidowWidth * (double)ny / (double)nx);
}
Mat RenderingImage(ny, nx, CV_8UC3, Scalar(50, 50, 50));//创建第一张图
namedWindow(" 图像预览(渲染中)", WINDOW_NORMAL);//设置标题
moveWindow(" 图像预览(渲染中)", (int)((1920.0 - WidowWidth) / 2), (int)((180.0 - WindowHeight) / 2) - 50);//窗口位置
resizeWindow(" 图像预览(渲染中)", WidowWidth, WindowHeight);//窗口大小
//为了方便对小数的应用,采用double类型
for (int j = nx - 1; j >= 0; j--)//图片的行信息(即一开始是在199层开始输出然后逐层往下)
{
for (int i = 0; i < nx; i++)//列信息(图片从0列开始往右输出)
{
//开始配置每个像素点的RGB信息
double r = double(i) / double(nx);
double g = double(j) / double(ny);
double b = 0.2;//每个像素的蓝色通道设定为0.2
int ir = int(255.99 * r);
int ig = int(255.99 * g);
int ib = int(255.99 * b);
//因为在上面设置的ppm文件的最大颜色(RGB通道值)为255,并且r,g,b范围为0-1,所以需要转换
std::cout << ir << " " << ig << " " << ib << std::endl;//将数据写入ppm文件
//元素顺序为蓝绿红
RenderingImage.at<cv::Vec3b>(ny - 1 - j, i)[0] = ib;//蓝
RenderingImage.at<cv::Vec3b>(ny - 1 - j, i)[1] = ig;//绿
RenderingImage.at<cv::Vec3b>(ny - 1 - j, i)[3] = ir;//红
}
//每行刷新窗口
if (!(j % (ny / 100)))
{
imshow(" 图像预览(渲染中)", RenderingImage);
waitKey(1);
}
}
imshow(" 图像预览(渲染中)", RenderingImage);
waitKey(3000);
destroyAllWindows();
return 0;
}
我也看了网上那些图片的引用,但是他们的问题都是直接在代码那个cpp文件里面出现,我的是弹出来另一个我没修改过的hpp文件然后报错
我想知道这个问题怎么解决