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

相关推荐
kyle~4 小时前
机器视觉---熔池相机(穿透强光的视觉感知)
c++·数码相机·计算机视觉·机器人·焊接机器人
宏笋4 小时前
C++ Coroutines(协程) 详解
c++
王老师青少年编程5 小时前
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:求区间和
c++·前缀和·csp·高频考点·信奥赛·求和区间和
kyle~5 小时前
机器人时间链路---工程流程示例
c++·3d·机器人·ros2
汉克老师7 小时前
GESP6级C++考试语法知识(十七、数据结构(三、认识队列 Queue))
数据结构·c++·队列·gesp6级·gesp六级·数组模拟队列
j_xxx404_9 小时前
Linux进程信号捕捉与操作系统运行本质深度解析
linux·运维·服务器·开发语言·c++·人工智能·ai
vx-程序开发9 小时前
基于机器学习的动漫可视化系统的设计与实现-计算机毕业设计源码08339
java·c++·spring boot·python·spring·django·php
gihigo19989 小时前
基于粒子滤波的三维雷达目标跟踪方案
人工智能·计算机视觉·目标跟踪
J&A~ing10 小时前
第一章 opencv 的 Windows源码在 Visual Studio 下的编译安装
人工智能·windows·opencv·计算机视觉·visual studio
MhZhou041210 小时前
1.11M参数小模型实现脑瘤分割 CVPR 2026 Findings 开源
算法·计算机视觉·3d·空间计算