小编典典

无论如何,您都必须阅读每个像素。你可以用

int rgb = bufferedImage.getRGB(x,y);

或者,您可以从图像中获取数据缓冲区,并直接以int[]数组的形式获取像素(如注释中所述),但是请注意,这可能在以后渲染此图像时对性能产生一些影响。

下一步将是检测像素是否具有某种颜色。说到照片,比较像

if (rgb == Color.BLUE.getRGB()) { ... }

没有任何意义:大多数情况下,像素不会 完美 呈现蓝色。相反,您可以通过将RGB值转换为HSB颜色空间来分析其色调。所以你可以做类似的事情

float hsb[] = new float[3];

int r = (rgb >> 16) & 0xFF;

int g = (rgb >> 8) & 0xFF;

int b = (rgb ) & 0xFF;

Color.RGBtoHSB(r, g, b, hsb);

然后,hsb阵列将包含颜色的色相,饱和度和亮度。这些值为0到1之间的值。将色相乘以360将获得颜色的“色调”:

饱和度和亮度可用于检测“接近黑色”或“接近白色”的像素。因此,您的最终分析可能大致如下:

if (hsb[1] < 0.1 && hsb[2] > 0.9) nearlyWhite();

else if (hsb[2] < 0.1) nearlyBlack();

else {

float deg = hsb[0]*360;

if (deg >= 0 && deg < 30) red();

else if (deg >= 30 && deg < 90) yellow();

else if (deg >= 90 && deg < 150) green();

else if (deg >= 150 && deg < 210) cyan();

else if (deg >= 210 && deg < 270) blue();

else if (deg >= 270 && deg < 330) magenta();

else red();

}

这些嵌套if语句也可以通过使用来避免NavigableMap其floorEntry和ceilingEntry方法,但如果语句可能是更容易明白这里。

2020-11-13

java颜色识别_Java颜色检测相关推荐

  1. java颜色识别_java读取图片对应坐标的颜色值

    public class ImageRead { int width=0; int height=0; int[][] ImageArray; StringBuffer sb = new String ...

  2. python颜色识别_颜色检测python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 版权声明:本文为博主原创文章,未经博主允许不得转载. https:blog.cs ...

  3. java 屏幕识别_java – 检测当前屏幕边界

    答案取决于屏幕的定义.您想要默认的屏幕边界还是特定的屏幕边界? 我使用以下(及其变体)来确定单个屏幕的屏幕边界 public static GraphicsDevice getGraphicsDevi ...

  4. java 图片识别_JAVA识别图片中的文字

    最近在需求上有一个识别图片中的文字功能,查询了不少资料,发现可以使用tess4j识别图像文字:话不多说现在开始: 首先创建Spring Boot项目:导入以下依赖 net.sourceforge.te ...

  5. java动物识别_java编写的专家系统(人工智能)动物识别

    import java.awt.*; //包含用于建立用户界面和绘制图形图像的全部类 import java.awt.event.*;   //提供处理由 AWT 组件所激发的各种事件的接口和类人工智 ...

  6. java 屏幕识别_Java课程设计:捕获图片以及识别图中的文字

    package屏幕捕捉以及识别;importjava.awt.Color;importjava.awt.FlowLayout;import java.awt.event.*;importjava.aw ...

  7. java 音色识别_Java实现Shazam声音识别算法的实例代码

    Shazam算法采用傅里叶变换将时域信号转换为频域信号,并获得音频指纹,最后匹配指纹契合度来识别音频. 1.AudioSystem获取音频 奈奎斯特-香农采样定理告诉我们,为了能捕获人类能听到的声音频 ...

  8. java 音色识别_Java实现Shazam声音识别算法

    Shazam算法采用傅里叶变换将时域信号转换为频域信号,并获得音频指纹,最后匹配指纹契合度来识别音频. 1.AudioSystem获取音频 奈奎斯特-香农采样定理告诉我们,为了能捕获人类能听到的声音频 ...

  9. java 屏幕识别_java原生实现屏幕设备遍历和屏幕采集(捕获)等功能

    前言:本章中屏幕捕获使用原生java实现,屏幕图像显示采用javacv1.3的CanvasFrame javacv系列: 补充篇: 一.实现的功能 1.屏幕设备遍历 2.本地屏幕图像采集(也叫屏幕图像 ...

  10. java 拼音识别_JAVA实现汉字转拼音

    packageedu.ws;importcom.github.stuxuhai.jpinyin.ChineseHelper;importcom.github.stuxuhai.jpinyin.Piny ...

最新文章

  1. COMET | 概念学习使机器具有人的思维方式
  2. bzoj 4237 稻草人
  3. Python入门100题 | 第036题
  4. Python教程:threading中join与setDaemon的用法及区别讲解
  5. 【IDE插件】- XCode6代码注释之VVDocumenter
  6. 年薪30万的程序员为啥找不到女朋友?这是我见过最精彩的回答!
  7. 请MVC5 WebApi2 支持OData协议查询
  8. 解决视图状态消息验证代码 (MAC) 错误
  9. 信号与系统 电子课本(郑君里)
  10. vscode配置c/c++手把手教你配置
  11. 行人重识别论文阅读1-Watching You: Global-guided Reciprocal Learning for Video-based Person Re-identification
  12. 软件工程师工作经历_我学会成为高级软件工程师的经历
  13. 基于腾讯云函数SCFddddocr免费验证码识别API响应系统
  14. 敏捷学习~backlog
  15. 身份证复印件的正确使用方法- -
  16. 新手程序员去哪里?避雷小技巧交给你
  17. 如何恢复类视图中突然消失的类已经编程辅助工具VISUAL ASIST
  18. 分布式一致性算法 - raft 图解
  19. 阿里云服务器详细地址在哪里?华南1深圳服务器详细地址
  20. php基础九(通过cURL来做小偷程序)

热门文章

  1. HDU - 6438 Buy and Resell (贪心 + 优先队列)
  2. 解锁图案-九宫格有多少种组合?安全吗?用程序来解答
  3. Unreal Engine 4 问题:如何设置分辨率
  4. 32位计算机装64位操作系统,电脑应该装32位还是64位系统?
  5. 按照网络规模来分,服务器分为哪几类?
  6. 2019届秋季校园招聘总结
  7. macOS High Sierra 10.13
  8. 西电软工oop面向对象程序设计实验四上机报告
  9. 【Python+QGIS将地名批量标注于高德地图】
  10. PHP生成唯一订单号 阿星小栈