1

我在 Android 4.0.3 上使用 JavaCV 它运行出错

OpenCV Error: Assertion failed (ssize.area() > 0) in unknown function, file C:\slave\WinInstallerMegaPack\src\opencv\modules\imgproc\src\imgwarp.cpp, line 1432

寻找特征...

Exception in thread "main" java.lang.RuntimeException: C:\slave\WinInstallerMegaPack\src\opencv\modules\imgproc\src\imgwarp.cpp:1432: error: (-215) ssize.area() > 0

com.googlecode.javacv.cpp.opencv_stitching$Stitcher.stitch(Native Method)

Lesson3_Stitch.main(Lesson3_Stitch.java:17)

任何人都可以教我如何解决它?谢谢你。

这是我的代码:

public static void main(String[] args) {

        Stitcher stitcher = Stitcher.createDefault(true);
        MatVector images = new MatVector(2);
        images.put(0, cvLoadImage("sample1.png"));
        images.put(1, cvLoadImage("sample2.png"));

        IplImage result = new IplImage();

        int status = stitcher.stitch(images, images);

        if (status != Stitcher.OK) {

            cvSaveImage("result.png", result);
            System.out.println("cant stitch image" + status);

        }

        result = cvLoadImage("sample1.png");

        final CanvasFrame canvas = new CanvasFrame("My Image", 1);

        // Request closing of the application when the image window is closed.
        canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);

        // Show image on window.
        // canvas.showImage(result);

    }

    private static void cvSaveImage(String string, IplImage result) {
        // TODO Auto-generated method stub

    }

    private static IplImage cvLoadImage(String string) {
        // TODO Auto-generated method stub
        return null;
    }
4

2 回答 2

0

我推荐你两件事:

首先,检查您是否有正确的导入:

import com.googlecode.javacv.cpp.opencv_core.IplImage;

import com.googlecode.javacv.cpp.opencv_core.MatVector;

import com.googlecode.javacv.cpp.opencv_stitching.Stitcher;

import static com.googlecode.javacv.cpp.opencv_highgui.*;

(对不起,我不知道为什么我不能在没有行间距的情况下放置它们)。

其次,放图片的完整路径。当它没有找到图像时,它发生在我身上。

images.put(0,cvLoadImage("/storage/sdcard0/Download/testpicture.JPG"));
于 2013-11-21T13:29:55.500 回答
0

您需要为 Android 导入 OpenCV,但是您的代码无法工作,因为您使用了 cvLoadImage 的自定义函数,该函数返回 null。这行不通。

您可以尝试使用 CV.loadImage 或一些变体。现在我没有安装 OpenCV 进行测试。

于 2013-06-18T04:32:23.470 回答