java颜色识别_Java颜色检测
小编典典
无论如何,您都必须阅读每个像素。你可以用
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颜色检测相关推荐
- java颜色识别_java读取图片对应坐标的颜色值
public class ImageRead { int width=0; int height=0; int[][] ImageArray; StringBuffer sb = new String ...
- python颜色识别_颜色检测python
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 版权声明:本文为博主原创文章,未经博主允许不得转载. https:blog.cs ...
- java 屏幕识别_java – 检测当前屏幕边界
答案取决于屏幕的定义.您想要默认的屏幕边界还是特定的屏幕边界? 我使用以下(及其变体)来确定单个屏幕的屏幕边界 public static GraphicsDevice getGraphicsDevi ...
- java 图片识别_JAVA识别图片中的文字
最近在需求上有一个识别图片中的文字功能,查询了不少资料,发现可以使用tess4j识别图像文字:话不多说现在开始: 首先创建Spring Boot项目:导入以下依赖 net.sourceforge.te ...
- java动物识别_java编写的专家系统(人工智能)动物识别
import java.awt.*; //包含用于建立用户界面和绘制图形图像的全部类 import java.awt.event.*; //提供处理由 AWT 组件所激发的各种事件的接口和类人工智 ...
- java 屏幕识别_Java课程设计:捕获图片以及识别图中的文字
package屏幕捕捉以及识别;importjava.awt.Color;importjava.awt.FlowLayout;import java.awt.event.*;importjava.aw ...
- java 音色识别_Java实现Shazam声音识别算法的实例代码
Shazam算法采用傅里叶变换将时域信号转换为频域信号,并获得音频指纹,最后匹配指纹契合度来识别音频. 1.AudioSystem获取音频 奈奎斯特-香农采样定理告诉我们,为了能捕获人类能听到的声音频 ...
- java 音色识别_Java实现Shazam声音识别算法
Shazam算法采用傅里叶变换将时域信号转换为频域信号,并获得音频指纹,最后匹配指纹契合度来识别音频. 1.AudioSystem获取音频 奈奎斯特-香农采样定理告诉我们,为了能捕获人类能听到的声音频 ...
- java 屏幕识别_java原生实现屏幕设备遍历和屏幕采集(捕获)等功能
前言:本章中屏幕捕获使用原生java实现,屏幕图像显示采用javacv1.3的CanvasFrame javacv系列: 补充篇: 一.实现的功能 1.屏幕设备遍历 2.本地屏幕图像采集(也叫屏幕图像 ...
- java 拼音识别_JAVA实现汉字转拼音
packageedu.ws;importcom.github.stuxuhai.jpinyin.ChineseHelper;importcom.github.stuxuhai.jpinyin.Piny ...
最新文章
- COMET | 概念学习使机器具有人的思维方式
- bzoj 4237 稻草人
- Python入门100题 | 第036题
- Python教程:threading中join与setDaemon的用法及区别讲解
- 【IDE插件】- XCode6代码注释之VVDocumenter
- 年薪30万的程序员为啥找不到女朋友?这是我见过最精彩的回答!
- 请MVC5 WebApi2 支持OData协议查询
- 解决视图状态消息验证代码 (MAC) 错误
- 信号与系统 电子课本(郑君里)
- vscode配置c/c++手把手教你配置
- 行人重识别论文阅读1-Watching You: Global-guided Reciprocal Learning for Video-based Person Re-identification
- 软件工程师工作经历_我学会成为高级软件工程师的经历
- 基于腾讯云函数SCFddddocr免费验证码识别API响应系统
- 敏捷学习~backlog
- 身份证复印件的正确使用方法- -
- 新手程序员去哪里?避雷小技巧交给你
- 如何恢复类视图中突然消失的类已经编程辅助工具VISUAL ASIST
- 分布式一致性算法 - raft 图解
- 阿里云服务器详细地址在哪里?华南1深圳服务器详细地址
- php基础九(通过cURL来做小偷程序)