二值化 android,Android下常用的图像处理程序(灰度化、线性灰度变化、二值化)

android下常用的图像处理程序(灰度化、线性灰度变化、二值化)。

1、图像灰度化:

[java]view plaincopy

publicbitmapbitmap2gray(bitmapbmsrc){

//得到图片的长和宽

intwidth=bmsrc.getwidth();

intheight=bmsrc.getheight();

//创建目标灰度图像

bitmapbmpgray=null;

bmpgray=bitmap.createbitmap(width,height,bitmap.config.rgb_565);

//创建画布

canvasc=newcanvas(bmpgray);

paintpaint=newpaint();

colormatrixcm=newcolormatrix();

cm.setsaturation(0);

colormatrixcolorfilterf=newcolormatrixcolorfilter(cm);

paint.setcolorfilter(f);

c.drawbitmap(bmsrc,0,0,paint);

returnbmpgray;

}

2、对图像进行线性灰度变化

[java]view plaincopy

publicbitmaplinegrey(bitmapimage)

{

//得到图像的宽度和长度

intwidth=image.getwidth();

intheight=image.getheight();

//创建线性拉升灰度图像

bitmaplinegray=null;

linegray=image.copy(config.argb_8888,true);

//依次循环对图像的像素进行处理

for(inti=0;ifor(intj=0;j//得到每点的像素值

intcol=image.getpixel(i,j);

intalpha=col&0xff000000;

intred=(col&0x00ff0000)>>16;

intgreen=(col&0x0000ff00)>>8;

intblue=(col&0x000000ff);

//增加了图像的亮度

red=(int)(1.1*red+30);

green=(int)(1.1*green+30);

blue=(int)(1.1*blue+30);

//对图像像素越界进行处理

if(red>=255)

{

red=255;

}

if(green>=255){

green=255;

}

if(blue>=255){

blue=255;

}

//新的argb

intnewcolor=alpha|(red

linegray.setpixel(i,j,newcolor);

}

}

returnlinegray;

}

3、对图像进行二值化

[java]view plaincopy

//该函数实现对图像进行二值化处理

publicbitmapgray2binary(bitmapgraymap){

//得到图形的宽度和长度

intwidth=graymap.getwidth();

intheight=graymap.getheight();

//创建二值化图像

bitmapbinarymap=null;

binarymap=graymap.copy(config.argb_8888,true);

//依次循环,对图像的像素进行处理

for(inti=0;ifor(intj=0;j//得到当前像素的值

intcol=binarymap.getpixel(i,j);

//得到alpha通道的值

intalpha=col&0xff000000;

//得到图像的像素rgb的值

intred=(col&0x00ff0000)>>16;

intgreen=(col&0x0000ff00)>>8;

intblue=(col&0x000000ff);

//用公式x=0.3×r+0.59×g+0.11×b计算出x代替原来的rgb

intgray=(int)((float)red*0.3+(float)green*0.59+(float)blue*0.11);

//对图像进行二值化处理

if(gray<=95){

gray=0;

}else{

gray=255;

}

//新的argb

intnewcolor=alpha|(gray

binarymap.setpixel(i,j,newcolor);

}

}

returnbinarymap;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值