OpenCV Android中图片改为灰度的示例分析
本篇文章为大家展示了OpenCV Android中图片改为灰度的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
首先在res的drawable下面拷进去一个图片logo.jpeg
然后在activity_main.xml的界面中加上一个按钮和一个图片
返回到代码文件
首先要初始化OpenCV
OpenCVLoader.initDebug();
然后加载按钮,写按钮事件
public void onClick(View view) {
BitmapFactory.Options options = new BitmapFactory.Options();
//设置读出来的图片为argb8位的
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
//读取原来的资源图片
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.logo, options);
//创建Mat对象 scr为源图像资源 dst为目标图像资源
Mat src = new Mat();
Mat dst = new Mat();
//把加载的bmp图片转换到scr的Mat对象里
Utils.bitmapToMat(bmp, src);
//src的Mat对象改变成灰度后复制进dst的Mat对象里
Imgproc.cvtColor(src, dst, Imgproc.COLOR_BayerGB2GRAY);
//再把dst的Mat对象重新转换回bmp图像里
Utils.matToBitmap(dst, bmp);
//给图片重新赋值
ImageView img = findViewById(R.id.img1);
img.setImageBitmap(bmp);
}
然后我们直接在虚拟机里运行
照DEMO里做的我这边到了Imgproc.cvtColor这个就直接报错了,现在还没找到什么原因,应该是opencv里新版本的这个参数不一样了,因为现在还不了解C++,后续如果这里学完了去了解一下C++的源码进行分析一下,再回来处理这里
后来我把3.3.1版本去掉了,下了2.4的版本,这样打包起来的APK不再是80M了,变成30M,小了很多,等熟悉了opencv后,再自己把有用的自己封装,减少APK的大小.
上述内容就是OpenCV Android中图片改为灰度的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。