我有一个奇怪的问题。我用数据向量(Mat myData)训练pca:
PCA pca(myData, Mat(), CV_PCA_DATA_AS_ROW, 90);
myData中的行数与样本数相对应。奇怪的是,如果我在大约90个样本上训练PCA,它运行没有问题但是当我增加样本数量时它会给我错误:
Microsoft C ++异常:cv ::内存位置的异常
当我在Linux机器上运行相同的代码时,它也运行没有任何问题。
有谁知道出了什么问题?
答案 0 :(得分:0)
最可能的原因是输入不包含您认为的数据量。因此,OpenCV将执行超出范围的内存访问。
这是未定义的行为,很可能在不同的系统上有不同的结果。操作系统通常不会过多地使用一个元素,因此您的PCA不会过分错误。