Android-将RGB彩色图转换为灰度图
Android-将RGB彩色图转换为灰度图
实例:RGB2Grey
项目运行效果图:
源代码:
public class MainActivity extends Activity {/* (non-Javadoc)* @see android.app.Activity#onCreate(android.os.Bundle)*/@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//通过Id来获取界面中组件的引用Button rgb2greyBtn = (Button) findViewById(R.id.rgb2greybtn);ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);final ImageView imageView2 = (ImageView) findViewById(R.id.imageView2); //通过位图工厂,创建一个位图final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_android);imageView1.setImageBitmap(bitmap);//为“转换为灰度图”按钮添加监听事件rgb2greyBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//将转换过后的灰度图显示出来imageView2.setImageBitmap(convertGreyImg(bitmap));}});}/*** 将彩色图转换为灰度图* @param img 位图* @return 返回转换好的位图*/public Bitmap convertGreyImg(Bitmap img) {int width = img.getWidth(); //获取位图的宽int height = img.getHeight(); //获取位图的高int []pixels = new int[width * height]; //通过位图的大小创建像素点数组img.getPixels(pixels, 0, width, 0, 0, width, height);int alpha = 0xFF << 24; for(int i = 0; i < height; i++) {for(int j = 0; j < width; j++) {int grey = pixels[width * i + j];int red = ((grey & 0x00FF0000 ) >> 16);int green = ((grey & 0x0000FF00) >> 8);int blue = (grey & 0x000000FF);grey = (int)((float) red * 0.3 + (float)green * 0.59 + (float)blue * 0.11);grey = alpha | (grey << 16) | (grey << 8) | grey;pixels[width * i + j] = grey;}}Bitmap result = Bitmap.createBitmap(width, height, Config.RGB_565);result.setPixels(pixels, 0, width, 0, 0, width, height);return result;}
}
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/LinearLayout1"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><ImageView android:id="@+id/imageView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"/><Button android:id="@+id/rgb2greybtn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/rgb2greybtn"android:layout_gravity="center_horizontal"/><ImageView android:id="@+id/imageView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"/>"
</LinearLayout>
转载于:https://www.cnblogs.com/wwj9413/archive/2012/11/21/2781182.html
Android-将RGB彩色图转换为灰度图相关推荐
- Python将彩色图转换为灰度图
Python将彩色图转换为灰度图 目录 Python将彩色图转换为灰度图 #原图 #转化程序 #处理后的图片
- tensorflow RGB三通道图转换为灰度图
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Blue_Ghost_/article/details/81977987 </div>&l ...
- 在嵌入式板子ARMv7 上利用neon对彩色图转换为灰度图进行加速
RGB转GRAY公式如下: 本实验通过对一张1920*1080 分辨率大小RGB彩色图进行灰度图转换测试耗时时间. 测试条件为 嵌入式开发板ssc9381g A7 通过四种转换方式进行耗时对比 结果如 ...
- matlab彩色转灰度图代码,彩色图转灰度图 matlab 实现代码
(一):彩色图像转灰度图 1.设计任务 1) 读入彩色和灰度图像并显示: 2) 对彩色图像转化为灰度图像并显示: 3) 比较两种方法的效果. 2.设计目的 1) 掌握彩色图转灰度图的基本原理与方法: ...
- linux 图片保存成黑白,8种最常用的方法! 将彩色图片转换为黑白图
原标题:8种最常用的方法! 将彩色图片转换为黑白图 在生活中,黑白照片并不是完全意义上的黑白照片,而是黑白灰照片.下面就介绍一下我们常用的几种转黑白灰照片方法. 原图 方法一: 去色:(ctrl+sh ...
- matlab将图片转换为灰度图_视频处理之灰度图
欲观原文,请君移步mp.weixin.qq.com 灰度图概念 灰度图 ,Gray Scale Image 或是Grey Scale Image,又称灰阶图.把白色与黑色之间按对数关系分为若干等级, ...
- matlab灰度图转rgb原理,RGB图像转化为灰度图原理以及MATLAB实现
RGB图像转化为灰度图原理以及MATLAB实现 1 原理 在RGB彩色模型中表示的图像由三个分量图像组成,每种原色一幅分量图像.利用MATLAB对图像进行读取,可以知道存储RGB图像数据为256*25 ...
- python PIL读取图像转换为灰度图及二值图像
目录 以下操作都是在windows环境下进行. 一.读取数据 1. 读取单个图像: 2. 批量读取: 3. 看一下是否读取成功: 二.模式"RGB"转换为'L'模式灰度图 三.模式 ...
- RGB图像转化为灰度图原理
RGB图像转化为灰度图原理 1 原理 利用MATLAB对RGB图像进行读取: img=imread('蒙娜丽莎.jpg'); 可以知道存储RGB图像数据为256×256×3uint8256\times ...
- 利用OpenCV和C++实现由RGB图像转化为灰度图,再将灰度图转化为二值图的程序
#include<opencv2\opencv.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<opencv2\i ...
最新文章
- 手把手教你 MongoDB 的安装与详细使用(一)
- javascript创建对象的三种方式
- ASP.NET基础教程-DataView对象的属性、方法、枚举成员
- aspnet_Applications表结构
- Metasploit发布了版本5.0.76
- shape(15,)与(15,1)的区别
- 据说有大神形容这是三句话学会C语言
- nginx配置websocket转发功能
- 一文带你理解云原生|云原生全景指南
- 1.4Activity保存现场状态
- 突发!Nginx 之父被拘留,原因竟然是“接私活儿”?
- zabbix 数据采集方法
- 纯css3实现瀑布流布局
- 20.HTTP-NG
- “奋斗者”号下潜10909米:我们为什么要做深海探索?
- The 2018 ACM-ICPC Asia Qingdao Regional Contest (Mirror)
- vb安装过程中 ntvdm.exe[9696]中发生未处理的win32异常
- 名帖90 蔡襄 楷书《临锺繇帖卷》
- 算法之狼羊菜过河问题
- 将大于100M的文件上传到蓝奏云的方法
热门文章
- 几种损失函数比较--代价函数,损失函数,目标函数区别
- 如何手动优化神经网络模型
- Redis的数据类型(对象)
- php调用go微服务,基于go搭建微服务实践教程 (一)
- 2021-07-01样式和图片标签
- 黑马旅游网完整代码_黑马旅游网(二)注册登陆
- DevOps使用教程 华为云(8)代码托管 代码仓库 git协作开发
- java 缓存ech_java ehcache 分布式缓存配置实例 .
- java executor spring_java - Spring TaskExecutor实现 - 堆栈内存溢出
- 基于SSM的废品商城