我是Android开发到OpenCV的新手。我有一个图像,我正在对图像进行一些操作。我首先将我的图像转换为位图,然后将该位图转换为MAT,如下所示。
Mat src = new Mat (400, 800, CvType.CV_8UC1, new Scalar(4));
Bitmap myBitmap32 = BitmapFactory.decodeFile(bitmap_file);
Utils.bitmapToMat(myBitmap32, src);
但是当我运行这个时,我的垫子就是
Mat [ 1920 * 2560 * CV_8UC4 ,isCont = true,isSubmat = false,nativeObj = 0x527a5950,dataAddr = 0x54262010]
所以,我的图像尺寸为1920x2560。
我希望这个尺寸是原来的400x800。
答案 0 :(得分:2)
来自OpenCV Java文档:
输出Mat 始终创建的大小与输入位图和'CV_8UC4'类型相同,它将图像保持为RGBA格式。
因此,要调整图像大小,首先应将图像读取到Mat,然后使用resize()
(来自Imgproc
):
public static void resize(Mat src, Mat dst, Size dsize)
public static void resize(Mat src, Mat dst, Size dsize, double fx, double fy, int interpolation)
如果您想缩小图片,使用CV_INTER_AREA
插值recommended。