【问题标题】:Android Opencv EM Fatal ErrorAndroid Opencv EM 致命错误
【发布时间】:2018-01-16 10:51:11
【问题描述】:

我正在尝试使用 EM::predict2(sample, probs) 来预测像素是否是叶子的一部分;但是,我收到了错误:

CvException [org.opencv.core.CvException: cv::Exception: /build/master_pack-android/opencv/modules/ml/src/em.cpp:569: 错误: (-215) sample.size() == Size(means.cols, 1) in function cv::Vec2d cv::ml::EMImpl::computeProbabilities(const cv::Mat&, cv::Mat*, int) const]

当我打电话时:

Mat mPredict = new Mat(1, 1, CvType.CV_8UC1);
Mat mLabel = new Mat(1, 1, CvType.CV_8UC1);
mPredict.put(0,0,imgHSV.get(i,j)[1]);
mLabel.put(0,0,imgHSV.get(i,j)[2]);

double[] probabilities = em.predict2(mPredict, mLabel);

为了澄清一些观点,我在下面显示了我试图遵循的伪代码:

stackedPixels ← ∅
for all pixelRow in image do
    for all pixel in pixelRow do
        stackedPixels ← stackedPixels ∪ pixel
    end for
end for
EM ← OpenCV.EM(nClusters = 2, covMatT ype = OpenCV.DIAGONAL)
EM.train(stackedPixels)
return EM


key ← hash(pixel[S], pixel[V])
if hash in pixelDictionary then
    return pixelDictionary[key]
end if
probabilities ← EM.predict(pixel[S], pixel[V])
pixelDict[key] = probabilities[0] > probabilities[1]
return pixelDict[key]

【问题讨论】:

    标签: android opencv


    【解决方案1】:

    什么版本的opencv?他们最近改变了方法。 也许你可以先试试这个?这是基于 v3.1.0 https://github.com/sonnyky/OpenCVEM

    我正在使用 OpenCV EM,并设法让它对 n 个簇中的像素进行分类。它仍在进行中,所以请原谅凌乱的代码:)

    【讨论】:

    • 我使用的是 v3.2.0。但是,我打算看看它是否可以帮助我!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 2016-02-13
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多