【问题标题】:cvNorm isn't recognized as OpenCV functioncvNorm 未被识别为 OpenCV 函数
【发布时间】:2013-01-25 20:00:28
【问题描述】:

我正在尝试与手机 SD 卡中的图像进行比较,因此我编写了这段代码。

package com.example.test;

import java.io.File;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    File img1=new File("mnt/sdcard/xx/IMG-20130123-WA0004.jpg");
    File img2=new File("mnt/sdcard/xx/IMG-20130124-WA0000.jpg");
    double l2_norm = cvNorm( img1, img2 );
}
}

我已将 OpenCV 作为项目导入到我的 Eclipse 工作区中,并将其设置为库。我的测试项目使用了这个库。

现在,我收到此错误The method cvNorm(File, File) is undefined for the type MainActivity

我搜索了超过 3 个小时来寻找正确的代码或方法,但似乎没有一个有效,并且 Eclipse 没有建议正确的导入。谁能告诉我正确的代码?

【问题讨论】:

    标签: android opencv image-comparison


    【解决方案1】:

    这是Java。您必须导入类并按包引用它们。

    import android.os.Bundle;
    import android.app.Activity;
    import org.opencv.core.Core;
    import org.opencv.core.Mat;
    import org.opencv.highgui.Highgui;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Mat img1 = Highgui.imread("mnt/sdcard/xx/IMG-20130123-WA0004.jpg");
            Mat img2 = Highgui.imread("mnt/sdcard/xx/IMG-20130124-WA0000.jpg");
            double l2_norm = Core.norm(img1, img2);
        }
    }
    

    【讨论】:

    • 我意识到我必须导入类。问题是我有错误的命令,否则 Eclipse 会自动导入它们。我发现cvNorm 不是Core.norm。我的错。
    • 你能提供一个像 developer.android.com 这样的 OpenCV 链接吗?
    • 谢谢。我还有一个问题。精确匹配的双精度值是多少?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    相关资源
    最近更新 更多