【问题标题】:Size of MAT in OpenCV android remain 1920*2560*CV_8UC4OpenCV android中MAT的大小保持1920*2560*CV_8UC4
【发布时间】:2014-01-07 14:04:05
【问题描述】:

我是 OpenCV 的 android 开发新手。我有一个图像,我正在对图像进行一些操作。我首先将我的图像转换为位图,然后将该位图转换为 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 。

【问题讨论】:

    标签: android opencv bitmap bit-manipulation bitmapfactory


    【解决方案1】:

    来自 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 2023-04-05
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多