千家信息网

OpenCV Android中图片改为灰度的示例分析

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,本篇文章为大家展示了OpenCV Android中图片改为灰度的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先在res的drawable下面拷进去
千家信息网最后更新 2024年11月20日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中图片改为灰度的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

0