【Android图像处理】图像处理之-噪点特效
来源:互联网 发布:log4j 写入mysql 编辑:程序博客网 时间:2024/05/14 16:57
一般在做图像处理的时候都希望降噪,噪点越少越好。
但是在图片中增加噪点也会达到意想不到的效果。
增加噪点的代码如下:
public static Bitmap Noise(Bitmap bitmap){int w = bitmap.getWidth();int h = bitmap.getHeight();Bitmap result = Bitmap.createBitmap(w, h, Bitmap.Config.RGB_565);int r, g, b, color;int[] oldPx = new int[w *h];int[] newPx = new int[w *h];int num = (int)(0.2f * 32768f);bitmap.getPixels(oldPx, 0, w, 0, 0, w, h);for (int x = 0; x < w; x++) {for (int y = 0; y < h; y++) {color = oldPx[x * h + y];r = Color.red(color);g = Color.green(color);b = Color.blue(color);if (num != 0){int rr = getRandomInt(-255, 0xff) * num;int gg = getRandomInt(-255, 0xff) * num;int bb = getRandomInt(-255, 0xff) * num;int rrr = r + (rr >> 15);int ggg = g + (gg >> 15);int bbb = b + (bb >> 15);r = (rrr > 0xff) ? ((byte)0xff) : ((rrr < 0) ? ((byte)0) : ((byte)rrr));g = (ggg > 0xff) ? ((byte)0xff) : ((ggg < 0) ? ((byte)0) : ((byte)ggg));b = (bbb > 0xff) ? ((byte)0xff) : ((bbb < 0) ? ((byte)0) : ((byte)bbb));} newPx[x * h + y] = Color.rgb(r, g, b);}} result.setPixels(newPx, 0, w, 0, 0, w, h);return result;}其中getRandomInt方法如下:
static int getRandomInt(int a, int b) { int min = Math.min(a, b); int max = Math.max(a, b);return min + (int)(Math.random() * (max - min + 1));}效果如下:
效果图 原图
在使用本算的时候,需要将图片截取成宽高相等的图片才能得到比较理想的效果。
1 0
- 【Android图像处理】图像处理之-噪点特效
- Android图像处理之色彩特效处理
- Android图像处理之图形特效处理
- Android图像处理之画笔特效处理
- 【Android图像处理】图像处理之-放大镜特效
- Android图像处理之熔铸特效
- 图像处理之LOMO特效
- Android中几种图像特效处理
- Android中几种图像特效处理
- Android中几种图像特效处理
- Android中几种图像特效处理
- Android中几种图像特效处理
- Android中几种图像特效处理
- Android中几种图像特效处理
- Android图像处理之色彩特效处理(学习笔记)
- 《Android群英传》图像处理之画笔特效处理--PorterDuffXfermode篇
- 《Android群英传》图像处理之画笔特效处理--Shader篇
- android图像处理及特效处理收集
- AudioManager 对个个声音的控制
- 关于navigationController 返回上问题
- yaf 使用__get后造成模板自动渲染失败--补充转载
- Linux用户空间与内核空间
- 网络流
- 【Android图像处理】图像处理之-噪点特效
- iOS开发(OC)——路径动画
- 想诚心学习IOS,只是不知道如何下手,希望前辈能多多指导!
- JS Scheduler - DayPilot
- numpy的 Broadcasting
- 属性和统计量
- java写入文件的几种方法分享
- 电路布线问题
- cpu gpu混合集群搭建