使用android opencv和javacv制作全景

时间:2013-06-16 01:36:52

标签: android opencv javacv

我目前正在做我的最后一年项目,我是android的新手。我想在我的项目中使用图像拼接艺术来制作课堂的全景视图。我已经尝试了很多教程和代码。它似乎是代码 http://www.cs.cornell.edu/courses/cs4670/2010fa/projects/final/results/group_of_acc269_ty244_yc563/cs4670_final.html

是正确的。但是当我要运行此代码时,我看到了很多错误。任何人都可以对此有所了解。这真的是一个帮助。谢谢你..

代码是哪个错误发生....

import com.opencv.camera.NativePreviewer;

import com.opencv.camera.NativeProcessor;

import com.opencv.camera.NativeProcessor.PoolCallback;

import com.opencv.jni.image_pool;

import com.opencv.opengl.GL2CameraViewer;

import com.theveganrobot.cvcamera.jni.Processor;

import com.theveganrobot.cvcamera.jni.cvcamera;

公共类CVCamera扩展了Activity {-----&gt;在这里错误是 import com.opencv.camera.NativePreviewer; import com.opencv.opengl.GL2CameraViewer; import com.theveganrobot.cvcamera.jni.Processor; import com.theveganrobot.cvcamera.jni.cvcamera; import com.opencv.jni.opencv; < / p>

在NativeProcessor类中 import com.opencv.jni.opencv; ------&GT;导入这个及其功能

public class NativeProcessor {

private class ProcessorThread extends Thread {



    private void process(NPPostObject pobj) throws Exception {




        if (pobj.format == PixelFormat.YCbCr_420_SP) {




            opencv.addYUVtoPool(pool, pobj.buffer, 0, pobj.width, pobj.height, false);





        } else if (pobj.format == PixelFormat.YCbCr_422_SP) {




            opencv.addYUVtoPool(pool, pobj.buffer, 0, pobj.width,pobj.height, true);


        }

在image_pool.java类

package com.opencv.jni;

public class image_pool {



  private long swigCPtr;




  protected boolean swigCMemOwn;




  public image_pool(long cPtr, boolean cMemoryOwn)

{             swigCMemOwn = cMemoryOwn;

        swigCPtr = cPtr;




  }


  public static long getCPtr(image_pool obj) {




        return (obj == null) ? 0 : obj.swigCPtr;



  }

protected void finalize(){

    delete();



  }

  public synchronized void delete() {




    if (swigCPtr != 0) {




      if (swigCMemOwn) {




        swigCMemOwn = false;




        opencvJNI.delete_image_pool(swigCPtr);




      }



      swigCPtr = 0;




    }



  }

  public image_pool() {




    this(opencvJNI.new_image_pool(), true);




  }



  public PtrMat getImage(int i) {





    return new PtrMat(opencvJNI.image_pool_getImage(swigCPtr, this, i), true);



  }

  public void addImage(int i, PtrMat mat) {




    opencvJNI.image_pool_addImage(swigCPtr, this, i, PtrMat.getCPtr(mat), mat);




  }




}

在这里导入opencvJNI。在image_pool.java类上创建函数并创建PtrMat class。我认为似乎那些impordet类没有项目。我真的试图找到代码,但是他们给出了很大的错误..请你考虑这个问题。

1 个答案:

答案 0 :(得分:0)

请按照教程设置您的环境。

在尝试运行下载的代码之前,应该完成以下几项操作,包括但不限于以下内容:

1)下载Opencv4Android

2)将Opencv4Android lib链接到你的eclipse项目中,作为属性页面中的“lib”

3)设置Java NDK环境(下载,添加到“环境变量”)

4)javaCV设置和android集成

希望有所帮助。

P.S。我刚刚完成了两个涉及opencv4android的课程设计