分享一个网上的图片识别程序
来源:互联网 发布:快速复制软件哪个好 编辑:程序博客网 时间:2024/04/29 23:54
基于Java语言实现的相似图像识别,基于直方图比较算法。
原创不易,转载请注明出处:分享一个网上的图片识别程序
HistogramFilter.java
package com.zuidaima.image.compare;import java.awt.image.BufferedImage;public class HistogramFilter {private int redBins;private int greenBins;private int blueBins;public HistogramFilter() {redBins = greenBins = blueBins = 4;}public void setRedBinCount(int redBinCount) {this.redBins = redBinCount;}public void setGreenBinCount(int greenBinCount) {this.greenBins = greenBinCount;}public void setBlueBinCount(int blueBinCount) {this.blueBins = blueBinCount;}public float[] filter(BufferedImage src, BufferedImage dest) {int width = src.getWidth();int height = src.getHeight();int[] inPixels = new int[width * height];float[] histogramData = new float[redBins * greenBins * blueBins];getRGB(src, 0, 0, width, height, inPixels);int index = 0;int redIdx = 0, greenIdx = 0, blueIdx = 0;int singleIndex = 0;float total = 0;for (int row = 0; row < height; row++) {int ta = 0, tr = 0, tg = 0, tb = 0;for (int col = 0; col < width; col++) {index = row * width + col;ta = (inPixels[index] >> 24) & 0xff;tr = (inPixels[index] >> 16) & 0xff;tg = (inPixels[index] >> 8) & 0xff;tb = inPixels[index] & 0xff;redIdx = (int) getBinIndex(redBins, tr, 255);greenIdx = (int) getBinIndex(greenBins, tg, 255);blueIdx = (int) getBinIndex(blueBins, tb, 255);singleIndex = redIdx + greenIdx * redBins + blueIdx * redBins* greenBins;histogramData[singleIndex] += 1;total += 1;}}// start to normalize the histogram datafor (int i = 0; i < histogramData.length; i++) {histogramData[i] = histogramData[i] / total;}return histogramData;}private float getBinIndex(int binCount, int color, int colorMaxValue) {float binIndex = (((float) color) / ((float) colorMaxValue))* ((float) binCount);if (binIndex >= binCount)binIndex = binCount - 1;return binIndex;}public int[] getRGB(BufferedImage image, int x, int y, int width,int height, int[] pixels) {int type = image.getType();if (type == BufferedImage.TYPE_INT_ARGB|| type == BufferedImage.TYPE_INT_RGB)return (int[]) image.getRaster().getDataElements(x, y, width,height, pixels);return image.getRGB(x, y, width, height, pixels, 0, width);}}下载地址:http://www.zuidaima.com/share/1550463398382592.htm
0 0
- 分享一个网上的图片识别程序
- 网上找到的VB语音识别程序
- 分享网上的一个小蜜蜂游戏
- 分享网上找到的一个中国象棋源码
- 分享一个安卓人脸识别的项目
- JAVA编写一个程序从网上下载一张图片
- 网上搜集的一个比较实用的图片操作类
- 网上摘的一个ListView异步更新图片的例子
- 网上搜集的一个比较实用的图片操作类
- 一个自己写的使用Cryptlib进行对称加/解密的程序,网上关于Cryptlib的资料不多,自己摸索中,一点小进步分享一下
- 分享一个免费的人脸识别API、SDK~~
- 从网上找到了一个 读取声音的程序
- 分享一个有意思的小程序!!
- 写了一个小程序:定时从网上下载图片来设置桌面
- 网上看到的,转过来和大家一起分享侃侃单片机裸奔的程序
- 网上找到的一个iframe标签的运用 与大家分享
- 结合网上内容,分享一个,java用for循环创建i个对象,的方法
- 通过代码从网上下载一个图片及图片的复制
- Ogre程序添加控制台显示
- Ruby源文件指引
- net 内存泄露和内存溢出
- android 如何做到完全退出应用程序
- angularJS之$apply()方法
- 分享一个网上的图片识别程序
- Rtsp发送ANNOUNCE到Darwin时,RTSP/1.0 401 Unauthorized
- C-Ruby源码分析-1
- java类型安全和线程安全
- 并查集及例题题解
- C-Ruby源码分析-2( RNode 结构浅析)
- Oracle数据库学习 第一天
- org.apache.commons.dbcp.DelegatingPreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V
- Ubuntu 12.10下安装Redis, 主从复制配置