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.,没问题:)顺便问一下,您知道如何解决这个问题吗?我试图找到解决方案,但仍然无法解决这个问题。