Opencv PCA Microsoft c++ exception: cv::内存位置异常
Opencv PCA Microsoft C++ exception: cv::Exception at memory location
我有一个奇怪的问题。我正在用数据向量(Mat myData)训练pca,如下:
PCA pca(myData, Mat(), CV_PCA_DATA_AS_ROW, 90);
myData中的行数对应于样本的数量。奇怪的是,如果我在大约90个样本上训练PCA,它运行没有问题,但当我增加样本数量时,它会给我错误:
Microsoft c++ exception: cv:: exception at memory location
当我在Linux机器上运行相同的代码时,它也没有任何问题。
有谁知道出了什么问题吗?
最可能的原因是输入没有您想象的那么多数据。因此,OpenCV将执行一个边界外的内存访问。
这是未定义行为,很可能在不同的系统上产生不同的结果。简单地过多地使用一个元素通常是无法被操作系统检测到的,并且您的PCA不会因为它而出现严重错误。
相关文章:
- 将字符串存储在c++中的稳定内存中
- 开放 CV 中的动态内存分配,用于视频处理
- C++:从GPU内存(cudaMemcpy2D)获取BGR图像(cv::Mat)
- 如何消除ROS打开CV中的内存不足错误?
- cv:内存位置的异常 - 运行 openCV 代码 Visual Studio 2013 & Visual Studio 2017 - Windows 7
- cv::内存位置出现异常错误
- 在cv::Mat对象上循环时,内存位置出现cv::异常
- cv::Mat 内存即使在调用 release() 后也没有释放?
- OpenCV cv::mat发布免费内存
- 从 cv::Mat 初始化的 IplImage 的内存释放
- 如何强制opencv映像(cv::Mat)释放内存
- 使用FileStorage API加载的cv::Mat的可用内存
- cv::imshow 似乎损坏了一些内存区域
- cv::imread() 会导致内存损坏
- OpenCV cv::Mat导致std::vector潜在内存泄漏
- 从内存中加载cv::RTrees
- cv: Mat内存分配和释放
- 内存泄漏转换cv::Mat
- 使用opencv的cv::dct时出现内存错误
- Opencv PCA Microsoft c++ exception: cv::内存位置异常