图像灰度化的方式
来源:互联网 发布:域名池是什么意思 编辑:程序博客网 时间:2024/06/05 19:31
基本的公式:将RGB转换为[0,255]之间灰度的公式:
grey=0.299 * red + 0.587 * green + 0.114 * blue;
案例:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/source"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/gg"
/>
<ImageView
android:id="@+id/destination"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取反"
android:onClick="remove"
/>
</LinearLayout>
activity代码:
public class ImageJAndroidActivity extends Activity {
ImageView sourceImage;
ImageView destinationImage;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sourceImage=(ImageView) findViewById(R.id.source);
destinationImage=(ImageView) findViewById(R.id.destination);
}
//灰度化
public void remove(View v){
Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.gg);
int width=bitmap.getWidth();
int height=bitmap.getHeight();
int[] pixel=new int[width*height];
bitmap.getPixels(pixel, 0, width, 0, 0, width, height);
for(int y=0;y<height;y++){
for(int x=0;x<width;x++){
int a=pixel[y*width+x]>>24&0xff;
int r=pixel[y*width+x]>>16&0xff;
int g=pixel[y*width+x]>>8&0xff;
int b=pixel[y*width+x]&0xff;
int grey=(int)(0.299 * r + 0.587 * g + 0.114 * b);
pixel[y*width+x]=(a<<24)|grey<<16|grey<<8|grey;
}
}
Bitmap newBitmap=Bitmap.createBitmap(width, height,Config.RGB_565);
newBitmap.setPixels(pixel, 0, width, 0, 0, width, height);
destinationImage.setImageBitmap(newBitmap);
}
显示效果:
- 图像灰度化的方式
- 【c#图像处理】【一】彩色图像灰度化、c#图像处理的三种方式
- 图像的灰度化模块
- 图像灰度化的实现
- 图像的灰度化代码
- java 加载图像,显示图像和图像的灰度化
- Matlab中以三维的方式显示灰度图像
- 图像的灰度化处理的基本原理
- 图像的灰度化,直方图均衡化
- 图像的灰度化原理和实现
- 图像的灰度化原理和实现
- 图像的灰度化原理和实现
- 图像的二值化和灰度化
- 彩色图像的灰度化处理
- BMP图像的灰度化---C++实现
- 图像的灰度化以及二值图函数
- 彩色图像的灰度化处理
- 图像的二值化和灰度化
- Linux 常用命令
- poj 2352 树状数组
- 大数据hadoop视频教程 精品推荐
- AFNetworking2.0的源码解析
- java连接oracle驱动版本区别
- 图像灰度化的方式
- DataGridView 使用
- 浏览器兼容模式下jsp页面变形的解决方法
- hash join驱动表问题
- String,StringBuffer与StringBuilder的区别??
- BitMap工具类
- RailsCast25 SQL Injection SQL注入
- OSI七层模型详解
- PHP正则表达式