1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > opencv 报错:Error: Assertion failed (data) in cv::Mat::at file ... m

opencv 报错:Error: Assertion failed (data) in cv::Mat::at file ... m

时间:2020-09-18 21:17:32

相关推荐

opencv 报错:Error: Assertion failed (data) in cv::Mat::at  file ... m

文章目录

opencv4报错原因解决方法

opencv4报错

这是源代码:

#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(int argc, const char* argv[]) {Mat src, dst;src = imread("./test.jpg");//if (src.empty()) {if (!src.data){printf("could not load image...\n");return -1;}//namedWindow("input img");//默认自动窗口大小//imshow("input img", src);//三个for循环,执行运算 g_dstImage(i,j) =a*g_srcImage(i,j) + bfor (int y = 0; y < src.rows; y++){for (int x = 0; x < src.cols; x++){for (int c = 0; c < 3; c++){//g_dstImage.at<Vec3b>(y, x)[c] = saturate_cast<uchar>((g_nContrastValue*0.01)*(g_srcImage.at<Vec3b>(y, x)[c]) + g_nBrightValue);dst.at<Vec3b>(y, x)[c] = src.at<Vec3b>(y, x)[c];}}}namedWindow("output img");//默认自动窗口大小imshow("output img", dst);waitKey(0);return 0;}

vs编译运行报错:

原因

访问数组的不存在的下标了(因为我们没在上面代码中初始化Mat数组dst的大小和数据类型。。。)

解决方法

加上代码:dst = Mat::zeros(src.size(), src.type()); //第二个参数是位深度,目前值为16

#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(int argc, const char* argv[]) {Mat src, dst;src = imread("./test.jpg");//if (src.empty()) {if (!src.data){printf("could not load image...\n");return -1;}namedWindow("input img");//默认自动窗口大小imshow("input img", src);dst = Mat::zeros(src.size(), src.type());//第二个参数是位深度,目前值为16//三个for循环,执行运算 g_dstImage(i,j) =a*g_srcImage(i,j) + bfor (int y = 0; y < src.rows; y++){for (int x = 0; x < src.cols; x++){for (int c = 0; c < 3; c++){//g_dstImage.at<Vec3b>(y, x)[c] = saturate_cast<uchar>((g_nContrastValue*0.01)*(g_srcImage.at<Vec3b>(y, x)[c]) + g_nBrightValue);dst.at<Vec3b>(y, x)[c] = 255 - src.at<Vec3b>(y, x)[c];}}}namedWindow("output img");//默认自动窗口大小imshow("output img", dst);waitKey(0);return 0;}

vs编译运行结果:

参考文章:opencv 错误:cv::Mat::at 文件中的断言失败:mat.inl.hpp 第 930 行

opencv 报错:Error: Assertion failed (data) in cv::Mat::at file ... mat.inl.hpp line 897(访问了不存在矩阵的像素)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。