Opencv PCA Microsoft c++ exception: cv::内存位置异常

Opencv PCA Microsoft C++ exception: cv::Exception at memory location

本文关键字:cv 内存 位置 异常 exception PCA Microsoft c++ Opencv      更新时间:2023-10-16

我有一个奇怪的问题。我正在用数据向量(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不会因为它而出现严重错误。