gpt4 book ai didi

java - 获取 openCv 错误 - EigenFaces.Predict() 方法中的图像步骤错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:50 24 4
gpt4 key购买 nike

我在 java cv 人脸识别中的 EigenFaces.predict() 方法中遇到错误。错误是-

OpenCV Error: Image step is wrong (The matrix is not continuous, thus its number of rows can not be changed) in unknown function, file ......\src\opencv\modules\core\src\matrix.cpp, line 802

我的代码是-

public static void main(String[] args)  {
long size=6;
MatVector imgs=new MatVector(size);
int[] id={0,0,0,0,0,0};

FaceRecognizer fr=opencv_contrib.createEigenFaceRecognizer();
for(int i=0;i<=5;i++)
{
String url="C:/Users/vivek/Documents/NetBeansProjects/Recognizer2/src/a"+(i+1)+".jpg";
IplImage img=opencv_highgui.cvLoadImage(url);
imgs=imgs.put(i,img);

}
fr.train(imgs,id);
IplImage testImage=opencv_highgui.cvLoadImage("C:/Users/vivek/Documents/NetBeansProjects/Recognizer2/src/a3.jpg");
CvMat mat= testImage.asCvMat();
int val=fr.predict(mat);
System.out.println(val);

最佳答案

终于找到了我的问题的解决方案。我的测试和训练图像的大小是 70*70。我将大小更改为 200*200,现在它运行良好。其背后的原因是 EigenFaceRecognizer 和 FisherFaceRecognizer 不适用于不是 8 或 16 的倍数的图像宽度(在我的例子中)。70 不是 8 的倍数,因此它不起作用,但对于图像宽度 200(8 的倍数),它工作正常。

关于java - 获取 openCv 错误 - EigenFaces.Predict() 方法中的图像步骤错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20739574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com