我正在使用Java openCV,并且尝试加载照片并运行与之匹配的模板。模板匹配方法处理Mat对象,因此我需要加载图像并将其转换为Mat。
我这样做的方式是:
Bitmap i = BitmapFactory.decodeFile("/sdcard/TVguide/Detection/detected.jpg");
image = Utils.bitmapToMat(i);
这样,我从Android SD卡加载了一张照片,并尝试使用openCV方法bitmapToMat将其转换为Mat对象。问题是在转换时,应用程序崩溃。
这是LogCat:
03-14 15:15:57.636: W/dalvikvm(1059): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/opencv/android/Utils;
03-14 15:15:57.636: D/AndroidRuntime(1059): Shutting down VM
03-14 15:15:57.636: W/dalvikvm(1059): threadid=1: thread exiting with uncaught exception (group=0x40015578)
03-14 15:15:57.640: E/AndroidRuntime(1059): FATAL EXCEPTION: main
03-14 15:15:57.640: E/AndroidRuntime(1059): java.lang.ExceptionInInitializerError
03-14 15:15:57.640: E/AndroidRuntime(1059): at com.marakana.Preview$3.onPictureTaken(Preview.java:191)
03-14 15:15:57.640: E/AndroidRuntime(1059): at android.hardware.Camera$EventHandler.handleMessage(Camera.java:565)
03-14 15:15:57.640: E/AndroidRuntime(1059): at android.os.Handler.dispatchMessage(Handler.java:99)
03-14 15:15:57.640: E/AndroidRuntime(1059): at android.os.Looper.loop(Looper.java:123)
03-14 15:15:57.640: E/AndroidRuntime(1059): at android.app.ActivityThread.main(ActivityThread.java:3687)
03-14 15:15:57.640: E/AndroidRuntime(1059): at java.lang.reflect.Method.invokeNative(Native Method)
03-14 15:15:57.640: E/AndroidRuntime(1059): at java.lang.reflect.Method.invoke(Method.java:507)
03-14 15:15:57.640: E/AndroidRuntime(1059): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
03-14 15:15:57.640: E/AndroidRuntime(1059): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
03-14 15:15:57.640: E/AndroidRuntime(1059): at dalvik.system.NativeStart.main(Native Method)
03-14 15:15:57.640: E/AndroidRuntime(1059): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load opencv_java: findLibrary returned null
03-14 15:15:57.640: E/AndroidRuntime(1059): at java.lang.Runtime.loadLibrary(Runtime.java:429)
03-14 15:15:57.640: E/AndroidRuntime(1059): at java.lang.System.loadLibrary(System.java:554)
03-14 15:15:57.640: E/AndroidRuntime(1059): at org.opencv.android.Utils.<clinit>(Utils.java:86)
03-14 15:15:57.640: E/AndroidRuntime(1059): ... 10 more
03-14 15:16:03.472: I/Process(1059): Sending signal. PID: 1059 SIG: 9
我不知道我做错了什么,还是只是有问题的openCV。
谢谢Eyal
您需要将位图转换为RGBA格式:
Bitmap bmp32 = i.copy(Bitmap.Config.ARGB_8888, true);
实际上,这是Android-
OpenCV用户组上讨论最多的问题:https :
//groups.google.com/group/android-
opencv/
此问题的修复程序已在OpenCV干线中提供,并将包含在OpenCV的下一版本中。
您也可以使用OpenCV API读取图像:
Mat image = Highgui.imread("/sdcard/TVguide/Detection/detected.jpg");
我想把openCV Mat文件转换成GDI+位图图像。我找不到任何关于如何做到这一点的信息?
问题内容: 如何将a转换为in ? 我正在使用JAVA包装器(不是 JavaCV )。由于我是新手,因此在理解工作方式方面存在一些问题。 我想做这样的事情。(根据Ted W.的回复): 这行不通。只是一张尺寸正确的黑色图片。 问题答案: 我还试图做同样的事情,因为需要将经过处理的图像与两个库结合在一起。而我一直试图做的是把中,而不是RGB值。而且有效!所以我做的是: 1,转换为字节数组 2.然后,
我有C/C++源代码(在Windows上运行良好)将输入帧转换为新帧。 > 将byte[]帧从Java转换为JNI jarrayByte 将jarrayByte转换为Jyte* 从JByte*创建新的cv::mat原始代码* } 我的Java代码:
问题内容: 我将输入流从Web转换为位图时遇到问题。仅当输入图像类型为.BMP(位图)时,才会出现问题。在这种情况下: bitmapFactory.decodeStream返回null 。 有什么提示如何解决此问题,或者应该在哪里继续调试? 平台:Android(蜂窝) 问题答案: 谢谢@Amir指出日志。发现了一条线: 这似乎是一个普遍的问题。进行搜索后,我找到了解决方案。 我以前的代码: 起作
我最近在eclipse上使用java中的openCV,正在开发一个眼球跟踪软件,我正在使用其他人创建的基本代码,并计划对其进行tweek,但在几行代码中出现错误,无法找出原因。这是全班同学 错误从这里开始,错误代码为:“构造函数大小(double,double,int,int,Scalar)未定义” 然后在ellipse这里我得到一个错误:“类型核中的方法ellipse(Mat,RotatedRe
Iam试图将base64转换为image,并将image数据传递给jQuery,但在数据表中置位时,它不显示image。因为to jQuery映像无法运行