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彩色图转换为灰度图相关推荐

  1. Python将彩色图转换为灰度图

    Python将彩色图转换为灰度图 目录 Python将彩色图转换为灰度图 #原图 #转化程序 #处理后的图片

  2. tensorflow RGB三通道图转换为灰度图

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Blue_Ghost_/article/details/81977987 </div>&l ...

  3. 在嵌入式板子ARMv7 上利用neon对彩色图转换为灰度图进行加速

    RGB转GRAY公式如下: 本实验通过对一张1920*1080 分辨率大小RGB彩色图进行灰度图转换测试耗时时间. 测试条件为 嵌入式开发板ssc9381g A7 通过四种转换方式进行耗时对比 结果如 ...

  4. matlab彩色转灰度图代码,彩色图转灰度图 matlab 实现代码

    (一):彩色图像转灰度图 1.设计任务 1) 读入彩色和灰度图像并显示: 2) 对彩色图像转化为灰度图像并显示: 3) 比较两种方法的效果. 2.设计目的 1) 掌握彩色图转灰度图的基本原理与方法: ...

  5. linux 图片保存成黑白,8种最常用的方法! 将彩色图片转换为黑白图

    原标题:8种最常用的方法! 将彩色图片转换为黑白图 在生活中,黑白照片并不是完全意义上的黑白照片,而是黑白灰照片.下面就介绍一下我们常用的几种转黑白灰照片方法. 原图 方法一: 去色:(ctrl+sh ...

  6. matlab将图片转换为灰度图_视频处理之灰度图

    欲观原文,请君移步​mp.weixin.qq.com 灰度图概念 灰度图 ,Gray Scale Image 或是Grey Scale Image,又称灰阶图.把白色与黑色之间按对数关系分为若干等级, ...

  7. matlab灰度图转rgb原理,RGB图像转化为灰度图原理以及MATLAB实现

    RGB图像转化为灰度图原理以及MATLAB实现 1 原理 在RGB彩色模型中表示的图像由三个分量图像组成,每种原色一幅分量图像.利用MATLAB对图像进行读取,可以知道存储RGB图像数据为256*25 ...

  8. python PIL读取图像转换为灰度图及二值图像

    目录 以下操作都是在windows环境下进行. 一.读取数据 1. 读取单个图像: 2. 批量读取: 3. 看一下是否读取成功: 二.模式"RGB"转换为'L'模式灰度图 三.模式 ...

  9. RGB图像转化为灰度图原理

    RGB图像转化为灰度图原理 1 原理 利用MATLAB对RGB图像进行读取: img=imread('蒙娜丽莎.jpg'); 可以知道存储RGB图像数据为256×256×3uint8256\times ...

  10. 利用OpenCV和C++实现由RGB图像转化为灰度图,再将灰度图转化为二值图的程序

    #include<opencv2\opencv.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<opencv2\i ...

最新文章

  1. 手把手教你 MongoDB 的安装与详细使用(一)
  2. javascript创建对象的三种方式
  3. ASP.NET基础教程-DataView对象的属性、方法、枚举成员
  4. aspnet_Applications表结构
  5. Metasploit发布了版本5.0.76
  6. shape(15,)与(15,1)的区别
  7. 据说有大神形容这是三句话学会C语言
  8. nginx配置websocket转发功能
  9. 一文带你理解云原生|云原生全景指南
  10. 1.4Activity保存现场状态
  11. 突发!Nginx 之父被拘留,原因竟然是“接私活儿”?
  12. zabbix   数据采集方法
  13. 纯css3实现瀑布流布局
  14. 20.HTTP-NG
  15. “奋斗者”号下潜10909米:我们为什么要做深海探索?
  16. The 2018 ACM-ICPC Asia Qingdao Regional Contest (Mirror)
  17. vb安装过程中 ntvdm.exe[9696]中发生未处理的win32异常
  18. 名帖90 蔡襄 楷书《临锺繇帖卷》
  19. 算法之狼羊菜过河问题
  20. 将大于100M的文件上传到蓝奏云的方法

热门文章

  1. 几种损失函数比较--代价函数,损失函数,目标函数区别
  2. 如何手动优化神经网络模型
  3. Redis的数据类型(对象)
  4. php调用go微服务,基于go搭建微服务实践教程 (一)
  5. 2021-07-01样式和图片标签
  6. 黑马旅游网完整代码_黑马旅游网(二)注册登陆
  7. DevOps使用教程 华为云(8)代码托管 代码仓库 git协作开发
  8. java 缓存ech_java ehcache 分布式缓存配置实例 .
  9. java executor spring_java - Spring TaskExecutor实现 - 堆栈内存溢出
  10. 基于SSM的废品商城