【问题标题】:Opencv PCA Microsoft C++ exception: cv::Exception at memory locationOpencv PCA Microsoft C++ 异常:内存位置的 cv::Exception
【发布时间】:2015-06-01 14:54:48
【问题描述】:

我有一个奇怪的问题。我正在使用数据向量 (Mat myData) 训练 pca:

PCA pca(myData, Mat(), CV_PCA_DATA_AS_ROW, 90);

myData 中的行数对应于样本数。奇怪的是,如果我在大约 90 个样本上训练 PCA,它运行没有问题,但是当我增加样本数量时,它给了我错误:

Microsoft C++ 异常:cv::Exception at memory location

当我在 Linux 机器上运行相同的代码时,它也可以毫无问题地运行。

有人知道出了什么问题吗?

【问题讨论】:

    标签: c++ opencv pca


    【解决方案1】:

    最可能的原因是输入包含的数据没有您想象的那么多。因此,OpenCV 将执行越界内存访问。

    这是未定义的行为,很可能在不同的系统上产生不同的结果。简单地过多使用一个元素不会被操作系统检测到,您的 PCA 也不会因此而过度错误。

    【讨论】:

    • 谢谢。这是我的第一个猜测,但我检查了它,我仍然看不出问题出在哪里。有 100 个样本/行传递给 PCA,在训练期间它仍然给我这个错误。
    猜你喜欢
    • 1970-01-01
    • 2012-03-26
    • 2011-10-20
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 2017-08-03
    • 1970-01-01
    相关资源
    最近更新 更多