Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在openCV中调整图像大小无效_Java_Android_Opencv - Fatal编程技术网

Java 在openCV中调整图像大小无效

Java 在openCV中调整图像大小无效,java,android,opencv,Java,Android,Opencv,我试图寻找解决办法,但似乎没有任何帮助。不知道我应该做什么 这是我的密码 //The imagePath consist the path of the image from camereFunction() public void runImg(Uri imagePath){ //my image file Bitmap image = MediaStore.Images.Media.getBitmap(this.getContentResolver(

我试图寻找解决办法,但似乎没有任何帮助。不知道我应该做什么

这是我的密码

//The imagePath consist the path of the image from camereFunction()        
public void runImg(Uri imagePath){

     //my image file   
    Bitmap image = MediaStore.Images.Media.getBitmap(this.getContentResolver(),imagePath);

    //For Testing Purpose 
    int image_w = image.getWidth();
    int image_h = image.getHeight();
    Log.d("Captured Image Prop: ", "Height = " + image_h + " Width = " + image_w );

    if (image != null ){


                    Mat imageMat = new Mat();
                    Mat image_res = new Mat();
                    //changes bitmap to Mat   
                    Utils.bitmapToMat(image, imageMat);

                    //Resize Image
                    Imgproc.resize(imageMat,image_res,new Size(400, 500),0.5,0.5,Imgproc.INTER_AREA);
                    //Create a rectangle
                    Imgproc.rectangle(image_res,new  Point(15,20), new Point(45,55), new Scalar(255, 0, 255),2);


                      // For Testing purpose ! To display proccessed image to view the outpts
                     Utils.matToBitmap(image_res,image);
                     imageView.setImageBitmap(image);


                    //To check the resized image height and width
                     image_w = image.getWidth();
                     image_h = image.getHeight();
                     Log.d("Resize Image Prop: ", "Height = " + image_h + " Width = " + image_w );
            }
这是我得到的错误:

07-10 22:40:54.077 18490-18490/com.hariicomp.hariivel.ichariitest E/cv::error(): OpenCV Error: Assertion failed (src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols) in void Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv*, jclass, jlong, jobject, jboolean), file /build/master_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp, line 97
07-10 22:40:54.077 18490-18490/com.hariicomp.hariivel.ichariitest E/org.opencv.android.Utils: nMatToBitmap catched cv::Exception: /build/master_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp:97: error: (-215) src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols in function void Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv*, jclass, jlong, jobject, jboolean)
07-10 22:40:54.083 18490-18490/com.hariicomp.hariivel.ichariitest E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.hariicomp.hariivel.ichariitest, PID: 18490
Theme: themes:{com.cyanogenmod.trebuchet=overlay:system, com.android.settings=overlay:system, default=overlay:org.cyanogenmod.hexolibre, iconPack:com.zavukodlak.candycons}
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=203, result=-1, data=Intent { (has extras) }} to activity {com.hariicomp.hariivel.ichariitest/com.hariicomp.hariivel.ichariitest.MainActivity}: CvException [org.opencv.core.CvException: /build/master_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp:97: error: (-215) src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols in function void Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv*, jclass, jlong, jobject, jboolean)
]
  at android.app.ActivityThread.deliverResults(ActivityThread.java:3733)
  at android.app.ActivityThread.handleSendResult(ActivityThread.java:3776)
  at android.app.ActivityThread.-wrap16(ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1412)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:148)
  at android.app.ActivityThread.main(ActivityThread.java:5461)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
  Caused by: CvException [org.opencv.core.CvException: /build/master_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp:97: error: (-215) src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols in function void Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv*, jclass, jlong, jobject, jboolean)
]
at org.opencv.android.Utils.nMatToBitmap2(Native Method)
at org.opencv.android.Utils.matToBitmap(Utils.java:123)
at com.hariicomp.hariivel.ichariitest.MainActivity.runOCR(MainActivity.java:199)
at com.hariicomp.hariivel.ichariitest.MainActivity.onActivityResult(MainActivity.java:128)
at android.app.Activity.dispatchActivityResult(Activity.java:6456)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3729)
... 9 more*

谁能给我指路吗?多谢各位

错误表明您的
imresize
正在工作,但是
Utils.matToBitmap
没有工作。这是因为需要重新初始化
位图图像

您可以使用以下方法执行此操作:

// before matToBitmap
 image = Bitmap.createBitmap(image_res.cols(), image_res.rows(), Bitmap.Config.ARGB_8888); 

在聊天室中进行讨论后,它会起作用!很乐意帮忙

错误表明您的
imresize
正在工作,但是
Utils.matToBitmap
没有工作。这是因为需要重新初始化
位图图像

您可以使用以下方法执行此操作:

// before matToBitmap
 image = Bitmap.createBitmap(image_res.cols(), image_res.rows(), Bitmap.Config.ARGB_8888); 

在聊天室中进行讨论后,它会起作用!很乐意帮忙

对于错误,我尝试使用代码格式,但StackOverflow一直要求我插入更多注释。错误意味着
bitmapToMat
不起作用,而不是resize函数。你能把你得到的结果加起来吗?@RickM,位图编辑器工作得很好,因为当我应用GaussianBlur和其他过滤器时,它显示为我想要的。只有调整大小似乎不起作用:(嗯,很抱歉评论错误,实际上您的
matToBitmap
不起作用,因为您更改了
Mat
的大小,并尝试将其分配给不同大小的位图图像。@RickM.,没问题:)顺便问一下,您知道如何解决这个问题吗?我试图找到解决方案,但仍然无法解决此问题。对于错误,我尝试使用代码格式,但StackOverflow不断要求我插入更多注释。错误意味着
bitmapToMat
不起作用,而不是调整大小功能。你能把你得到的结果加起来吗?@RickM,位图编辑器工作得很好,因为当我应用GaussianBlur和其他过滤器时,它显示为我想要的。只有调整大小似乎不起作用:(嗯,很抱歉评论错误,实际上您的
matToBitmap
不起作用,因为您更改了
Mat
的大小,并尝试将其分配给不同大小的位图图像。@RickM.,没问题:)顺便问一下,您知道如何解决这个问题吗?我试图找到解决方案,但仍然无法解决这个问题。