Java怎么实现图片比对算法
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇"Java怎么实现图片比对算法"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Ja
千家信息网最后更新 2025年01月20日Java怎么实现图片比对算法
这篇"Java怎么实现图片比对算法"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Java怎么实现图片比对算法"文章吧。
效果如下:
识别结果:
主要代码如下:
import javax.imageio.*;import java.awt.image.*;import java.awt.*;import java.io.*; public class PhotoDigest { public static void main(String[] args) throws Exception { float percent = compare(getData("/Users/sun/Downloads/1.jpg"), getData("/Users/sun/Downloads/3.jpg")); if (percent == 0) { System.out.println("无法比较"); } else { System.out.println("两张图片的相似度为:" + percent + "%"); } } public static int[] getData(String name) { try { BufferedImage img = ImageIO.read(new File(name)); BufferedImage slt = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB); slt.getGraphics().drawImage(img, 0, 0, 100, 100, null); // ImageIO.write(slt,"jpeg",new File("slt.jpg")); int[] data = new int[256]; for (int x = 0; x < slt.getWidth(); x++) { for (int y = 0; y < slt.getHeight(); y++) { int rgb = slt.getRGB(x, y); Color myColor = new Color(rgb); int r = myColor.getRed(); int g = myColor.getGreen(); int b = myColor.getBlue(); data[(r + g + b) / 3]++; } } // data 就是所谓图形学当中的直方图的概念 return data; } catch (Exception exception) { System.out.println("有文件没有找到,请检查文件是否存在或路径是否正确"); return null; } } public static float compare(int[] s, int[] t) { try { float result = 0F; for (int i = 0; i < 256; i++) { int abs = Math.abs(s[i] - t[i]); int max = Math.max(s[i], t[i]); result += (1 - ((float) abs / (max == 0 ? 1 : max))); } return (result / 256) * 100; } catch (Exception exception) { return 0; } }}
以上就是关于"Java怎么实现图片比对算法"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
内容
图片
算法
就是
文件
文章
知识
篇文章
相似
代码
价值
图形
大部分
效果
更多
概念
步骤
直方图
知识点
结果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器被锁了
计算机三级网络技术大题知乎
安徽机架式服务器虚拟主机
保罗视频软件开发
数据库具有什么样的安全性
加密数据库修正配置后不管用
服务器设置密钥登录
FW服务器
维护阶段属于软件开发阶段吗
数学差的能学计算机网络技术吗
校园网络安全古诗词
网络安全险概念
数据库图片解析软件
杭州黑酷网络技术有限公司
国家网络安全回答答案
最初的数据库模式翻译
轻量应用服务器怎么管理
上海能耗管理软件开发多少钱
数据库三级考试会自动保存吗
数据库并发调度
重庆市网络安全通报中心
软件开发的创始人是谁
福建服务器电源生产公司
数据库字段别名为什么
商丘的软件开发公司电话
软件开发面试常考知识点
5g互联网科技流量卡
为什么选择路由器网络安全
织梦按照数据库
电信dns服务器地址怎么设