weixin_47367620
2022-04-12 17:11
采纳率: 100%
浏览 113

vs2019版本未经处理的异常0x00007FFA1BFA4F69

在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;
}

img

我也看了网上那些图片的引用,但是他们的问题都是直接在代码那个cpp文件里面出现,我的是弹出来另一个我没修改过的hpp文件然后报错
我想知道这个问题怎么解决

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题