您的位置:首页 > 其它

IplImage与Bitmap相互转换

2016-08-19 15:13 162 查看
Drawable drawable = idToDrawable(R.drawable.p4);
Bitmap bitmap = this.drawableToBitmap(drawable);
// 将Bitmap转化为IplImage
IplImage iplImage = this.bitmapToIplImage(bitmap);
// 处理图像,比如旋转图像
cvFlip(iplImage, iplImage, 0);
// 再将IplImage转化为Bitmap
bitmap = this.IplImageToBitmap(iplImage);

/**
* 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;
}

/**
* 将资源ID转化为Drawable
* @param id
* @return
*/
public Drawable idToDrawable(int id) {
return this.getResources().getDrawable(R.drawable.p4);
}

/**
* 将Drawable转化为Bitmap
* @param drawable
* @return
*/
public Bitmap drawableToBitmap(Drawable drawable) {
if(drawable == null)
return null;
return ((BitmapDrawable)drawable).getBitmap();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: