cv::Mat 取元素引起的报错

一、定义一个矩阵

方法1:定义的时候,矩阵元素无初始值,需要赋值

cv::Mat intrinsic(3, 3, CV_64F );

cv::Mat distortion(1, 5, CV_64F);

1.矩阵赋值

intrinsic.at<double>(0, 0) = 2400;

intrinsic.at<double>(0, 1) = 0;

intrinsic.at<double>(0, 2) = 960;

intrinsic.at<double>(1, 0) = 0;

intrinsic.at<double>(1, 1) = 2400;

intrinsic.at<double>(1, 2) = 540;

intrinsic.at<double>(2, 0) = 0;

intrinsic.at<double>(2, 1) = 0;

intrinsic.at<double>(2, 2) = 1;

distortion.at<double>(0, 0) = 0 ;

distortion.at<double>(0, 1) = 0;

distortion.at<double>(0, 2) = 0;

distortion.at<double>(0, 3) = 0;

distortion.at<double>(0, 4) = 0;

方法2:定义的时候,矩阵元素初始为0

cv::Mat intrinsic = cv::Mat::zeros(3, 3, CV_64FC1);

cv::Mat distortion = cv::Mat::zeros(1, 5, CV_64FC1);

intrinsic.at<double>(0, 0) = 2400;

intrinsic.at<double>(0, 2) = 960;

intrinsic.at<double>(1, 1) = 2400;

intrinsic.at<double>(1, 2) = 540;

intrinsic.at<double>(2, 2) = 1;

方法3:cv::Mat_ 定义矩阵,直接初始化

cv::Mat distortion = (cv::Mat_<double>(1, 5) << 0, 0, 0, 0, 0);

二、定义的Mat类型,与使用时的类型不一致

使用Mat .at时数据类型的选择错误:如double类型的数据,你写成了float就会报错。

intrinsic.at<float>(0, 0) = 2000;

报错1:OpenCV(4.4.0) Error: Assertion failed (((0x28442211 >> ((traits::Depth<_Tp>::value) & ((1 << 3) - 1))*4) & 15) == elemSize1()) in cv::Mat::at, file D:\Projects\C++\opencv_test\opencv_test\opencv_test\include\opencv2\core\mat.inl.hpp, line 1157

三、Mat.at 取值越界

intrinsic.at<double>(3, 0) = 2000;

报错2:OpenCV(4.4.0) Error: Assertion failed (data) in cv::Mat::at, file D:\Projects\C++\opencv_test\opencv_test\opencv_test\include\opencv2\core\mat.inl.hpp, line 1154

相关推荐
别动我齐刘海6 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
陈嘿萌8 小时前
ICML 2026|浙大 1D-Fusion:用 Tokenizer 将图像“压”成一维 Token,重构融合表示
图像处理·人工智能·计算机视觉·图像融合·计算机科学与技术·学术研究与理论基础·顶级期刊与会议
jimy110 小时前
C++ 虚函数表:基类和派生类共用一张 vtable 吗?
开发语言·c++
陈嘿萌10 小时前
TPAMI 2026|武大 DuS-DiFuse:图像融合从“拼信息”走向“补语义”,兼顾真实退化鲁棒性
图像处理·人工智能·计算机视觉·图像融合·计算机科学与技术·学术研究与理论基础·顶级期刊会议
爱吃提升10 小时前
Dev-C++ 5.11 C++断点调试完整教程
开发语言·c++
xlq2232211 小时前
全面复习7
c++
陈嘿萌11 小时前
TIP 2026|没有分割标签,也能做任务导向图像融合:SSVIF的自监督语义注入
图像处理·人工智能·深度学习·计算机视觉·图像融合·学术研究与理论基础
geats人山人海12 小时前
现代c++2.4 虚继承
java·开发语言·c++
csuzhucong12 小时前
天元一号、二号、三号
c++
灯澜忆梦12 小时前
【面向对象编程c++】| 数组与函数
java·数据结构·c++