opencv Mat内存访问错误

时间:2017-12-06 05:13:07

标签: c++ opencv

我正在尝试编写一个函数来补偿OpenCV项目中的镜头渐晕。问题是,当我尝试访问Mat中的第一个像素时,出现内存访问错误。这可能是一个愚蠢的错误,但如果你能指出我,我会很感激。这是功能:

=if C:C = "IOTA" B:B = "1"

}

错误是:抛出异常:读取访问冲突。 cv :: Vec :: operator返回0x240C37EC4A8。

给出的地址正是I.data的地址。怎么了?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

嗯...没关系。事实证明,异常是真实的,而不是这个代码的问题。我正在使用Point Grey的示例代码。它使用Mat构造函数从Point Grey ImagePtr转换为Mat,该构造函数只是将指针复制到数据。 ImagePtr超出了范围,因此当我尝试使用它时数据无效。 Mat.CopyTo()解决了这个问题。如果您需要快速解决类似问题,我强烈建议您阅读this