现在想判定一个jpg图片是不是灰度的,只看颜色通道是不行的

见代码,分析每个像素 rgb是否近似相等

/*** 判断一个点是否为灰色,* @param R* @param G* @param B* @param H* @param S* @param V* @return 是否为灰色*/private  static boolean isGrey_1(int R, int G, int B, int H, int S, int V){// C4C9C8//F7EEEA//225 6 97//if (((H >= 0 && H < 180) && (S >= 0 && S < 43) && (V >= 46 && V <= 255))//白色int x = (R+G+B)/3;int TotalGrey = Math.abs(R-x)+Math.abs(G-x)+Math.abs(B-x);if (((H >= 0 && H <= 255) && (S >= 0 && S < 43) && (V >= 46 && V <= 255))//白色|| ((H >= 0 && H <= 226) && (S >= 0 && S < 43) && (V >= 46 && V < 220))//灰色|| ((H >= 0 && H < 180) && (S >= 0 && S < 60) && (V >= 46 && V < 230))//灰色){return true;}//不能全黑if(TotalGrey<30&&x>5){return true;}return false;}private  static double  isDocument(  Bitmap  src,int level ) {//用于检测灰色比例显示double MyRedColorProportionWithWhiteColor=0;int w=src.getWidth();int h=src.getHeight();//红头文件必须上半部有红字int[]pixels=new int[w*h];src.getPixels(pixels,0,w,0,0,w,h);int H = 0, S = 0, V =0;int R =0, G = 0, B = 0;double goodRedPoints = 0;double goodWhitePoints = 1;for (int i = 0; i < h; i++){for (int j = 0; j < w; j++){int mColor=pixels[i*w+j];float[] hsv = new float[3];//定义一个长度为3的数组Color.colorToHSV(mColor, hsv);//转化hsvR=(mColor>>16)&0xff;G=(mColor>>8)&0xff;B=(mColor)&0xff;H=(int)hsv[0];S=(int)(hsv[1]*100);V=(int)(hsv[2]*100);if (isGrey_1(R, G, B, H, S, V)==true)//灰色{goodWhitePoints++;}}}double whiteRate= (double)((double)(goodWhitePoints)/(w*h));return whiteRate;}

如果rgb 与平均值 偏移较大则认为是彩色的了。

Android如何判定一张图片是不是灰度的相关推荐

  1. android 查看多个图片,android提取视频多张图片和视频信息

    android提取视频多张图片和视频信息 话说2016年的直播比较火,2017年短视频又火了.但对于开发者来说隐藏在这背后的技术才是我们所关心的,毕竟我们是靠技术吃饭的. 现在在安卓中多媒体服务比较强 ...

  2. Android设备上一张图片的显示过程

    转自:http://blog.csdn.net/jxt1234and2010/article/details/50524213 Android设备上一张图片的显示过程 应用示例 假如我们现在有一张这样 ...

  3. Android图形显示系统——一张图片的显示流程

    Android设备上一张图片的显示过程 应用示例 假如我们现在有一张这样的风景照 想在Android设备(比如一个小米pad)上显示出来.首先想到的是写一个应用,用一个ImageView,把这张照片附 ...

  4. Android之给图片去色,返回灰度图片以及ColorMatrix中setSaturation方法的用法

    原图: 效果图: 实现以上效果其实很简单,直接上代码: public class MainActivity extends Activity {private Button btn_start;pri ...

  5. Android 仿朋友圈单张图片限定宽高超出时按比例缩放效果实现

    分析 因项目需求需要实现仿微信朋友圈单张图片展示效果,经分析微信单张图片的显示效果分两种情况: 1.当需要展示的图片实际宽度占满全屏时,发现高度大于指定高度,此时固定ImageView控件高度为最大高 ...

  6. android七牛多张图片上传

    将多张图片上传到七牛,需要一张张上传 七牛android SDK使用指南http://developer.qiniu.com/code/v7/sdk/android.html 将图片上传到七牛服务器的 ...

  7. android 中关于两张图片叠加方法(记录)

    最近在做一个小的Android项目中遇到一个问题,就是不知道为什么机器输出的分辨率不稳定,总是有几十个像素的误差.导致屏幕适配出现了问题.这次主要记录一下解决思路. 问题就如图 主要是一张背景图 ,在 ...

  8. Android之实现多张图片点击预览(支持放缩)和滑动

    1 需求 多张图片通过recycleView展示,然后点击具体一张图片支持预览(支持放缩)和滑动 2 解决办法 BaseRecyclerViewAdapterHelper  +   com.githu ...

  9. Android 仿微信多张图片选择器,适配android10系统,open failed: EACCES (Permission denied)

    实现效果 只需引入模块,比起依赖,更方便自定义 implementation project(':imagepicker') //图片加载 implementation 'com.github.bum ...

最新文章

  1. vnc oracle solaris,在Solaris下安装VNC 远程安装Oracle
  2. shell脚本 -d 是目录文件,那么-e,-f分别是什么?还有! -e这又是什么意思呢?
  3. 如果正确看待区块链这一新型技术的未来发展?...
  4. 关于多个router-view视图组件,渲染同一页面
  5. tf.nn.conv2d理解(带通道的卷积图片输出案例)
  6. W3C 宣布:WebAuthn 成为正式 Web 标准
  7. Problem C: 默认参数:求圆面积
  8. ESA和NetWeaver
  9. golang的定时任务
  10. hive应用实例 将查询结果写入原表中
  11. 通过kmeans分析出租车数据并调用百度API进行可视化!
  12. 为什么图片保存类型360 se html document,360安全浏览器为什么图片不显示保存
  13. 使用原始武器的现代战争
  14. 噬菌体疗法减缓细菌耐药性进化
  15. Mac清空的废纸篓文件怎么恢复
  16. PS中的颜色模式,8位、16位、32位区别、以及背景内容的区别
  17. 机器学习在脊柱的应用现状:从临床的观点
  18. 羊le个羊 小游戏 简单源码开源 思路分析
  19. 【Jmeter常用断言组件】
  20. campaign 缩写_Campaign Monitor的画布:简化电子邮件设计

热门文章

  1. UML-九种基本图形
  2. 漫谈Web Feed、RSS、原文链接和转贴
  3. OCR图文识别软件是怎么保存页面图像的
  4. Linux 参数之 max_map_count
  5. excel与access结合运用_access和excel结合应用
  6. cmd循环调用native2ascii.exe
  7. 固态硬盘raw格式数据能恢复吗(图文)
  8. ETFE膜和PTFE膜不同之处以及特点-世来福
  9. fast RCN论文笔记
  10. 2018:MIXED PRECISION TRAINING OF CONVOLUTIONAL NEURAL NETWORKS USING INTEGER OPERATIONS利用整数运算对卷积神经网络