C++OpenCV mat.at在使用数据时产生访问冲突
C++ OpenCV mat.at gives access violation when using data
我正在visual studio 2010 C++dll中使用openCV 2.1来执行矩阵运算。dll从VB.NET程序接收数组,并将它们加载到矩阵中进行一些操作。但是,如果不引发访问冲突异常,我就无法在任何cv::mat对象上使用.at成员。我以为这是因为我在数组中传递,但我甚至无法运行这个:
Mat Rhat(2,1,CV_32FC1);
Rhat.at<double>(0,0) = 10;
Rhat.release();
如果我删除.at
行,那么它运行良好。我用CvMat类型完成了C的全部工作,但它不喜欢cvCreateMat,而是开始使用cv命名空间。dll中的所有非opencv函数都能正常工作,所以问题出在我的cv设置或其他方面
有人能帮忙吗?
问题是您创建了一个float矩阵(32FC1),并且您试图使用double访问它,这会导致越界访问。
你可以在任何地方使用float:
Mat Rhat(2,1,CV_32FC1);
Rhat.at<float>(0,0) = 10;
Rhat.release();
或双重:
Mat Rhat(2,1,CV_64FC1);
Rhat.at<double>(0,0) = 10;
Rhat.release();
相关文章:
- 用于访问容器<T>数据成员的正确 API
- 写入位置0x0000000C时发生访问冲突
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 链表中写入访问冲突的未知原因
- C++中的openCV Mat访问冲突
- 友元函数无法访问私有数据成员 (c++)
- C++尝试深度复制唯一指针时出现内存访问冲突
- C++ 中动态二维数组的访问冲突
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- 写入访问冲突异常
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- 0xC0000005:访问冲突写入位置0xCDCDCDCD动态分配错误
- 读取访问冲突.这0xCDCDCDCD
- 读取访问冲突. _Mycont 在 C++ 中将 udp 数据放入向量时出现 nullptr 错误
- 从网络数据包复制一串 wchar 时访问冲突
- 字符串数据成员的指针错误 - 获取访问冲突
- C++-构造ICMP数据包时发生访问冲突
- 改变c++中char *const所指向的数据时的访问冲突
- C++OpenCV mat.at在使用数据时产生访问冲突
- 在向数组写入数据时发生写访问冲突