- OpenCV:3.4.3
当处理图片时我们需要为图片添加模糊玻璃效果于是,我们在搭建好的OpenCV项目中,使用如下代码为内存卡下的10000.jpg添加模糊效果后保存为10001.jpg,并且显示在ImageView上。
//初始化OpenCV
OpenCVLoader.initDebug();
//读入图片
Mat imsrc = Imgcodecs.imread(Environment.getExternalStorageDirectory() + "/10000.jpg");
int rows = imsrc.rows();
int cols = imsrc.cols();
//先实例两个Mat作为目标矩阵存储图片
Mat imdest = new Mat();
Mat imdest2 = new Mat();
//添加Blur效果在Mat上,尺寸为10
Imgproc.blur(imsrc, imdest, new Size(10, 10));
//将添加效果后的图片写入到10001.jpg文件,写入时会自动将BGR转成RGB顺序
Imgcodecs.imwrite(Environment.getExternalStorageDirectory() + "/10001.jpg", imdest2);
//创建ARGB_8888或RGB_565的Bitmap
Bitmap bitmap = Bitmap.createBitmap(cols, rows, Bitmap.Config.RGB_565);
//由于Mat内存储的色彩顺序是BGR,所以要显示在ImageView上需要更换顺序为RGB
Imgproc.cvtColor(imdest,imdest2,Imgproc.COLOR_BGR2RGB);
//Mat转成Bitmap
Utils.matToBitmap(imdest2, bitmap, true);
//放到ImageView上
imageView.setImageBitmap(bitmap);