码迷,mamicode.com
首页 > 移动开发 > 详细

【Java CV与Android】JavaCV实现IplImage与Bitmap的相互转换

时间:2015-08-31 01:17:14      阅读:611      评论:0      收藏:0      [点我收藏+]

标签:android   javacv   iplimage   bitmap   

代码简单,如下:

/**
     * IplImage转化为Bitmap
     * @param iplImage
     * @return
     */
    public Bitmap IplImageToBitmap(IplImage iplImage) {
        Bitmap bitmap = null;
        bitmap = Bitmap.createBitmap(iplImage.width(), iplImage.height(), 
                Bitmap.Config.ARGB_8888);
        bitmap.copyPixelsFromBuffer(iplImage.getByteBuffer());
        return bitmap;
    }

    /**
     * Bitmap转化为IplImage
     * @param bitmap
     * @return
     */
    public IplImage bitmapToIplImage(Bitmap bitmap) {
        IplImage iplImage;
        iplImage = IplImage.create(bitmap.getWidth(), bitmap.getHeight(),
                IPL_DEPTH_8U, 4);
        bitmap.copyPixelsToBuffer(iplImage.getByteBuffer());
        return iplImage;
    }

里面主要是用到了Bitmap的两个函数:

  • public void copyPixelsFromBuffer (Buffer src)
    从buffer中复制点到Bitmap中,并且从初始位置开始会覆盖掉Bitmap中原来的点,复制过程中buffer的点不会以任何方式改变,不管原bitmap格式如何最终都会以32位的方式写入

  • public void copyPixelsToBuffer (Buffer dst)
    将Bitmap中的点复制到指定的buffer当中,如果dst的空间不够大不能容下bitmap中的所有点,或者dst不是ByteBuffer, ShortBuffer, IntBuffer这三种之一,函数则会抛出异常

版权声明:本文为博主原创文章,未经博主允许不得转载。

【Java CV与Android】JavaCV实现IplImage与Bitmap的相互转换

标签:android   javacv   iplimage   bitmap   

原文地址:http://blog.csdn.net/zgljl2012/article/details/48113345

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!