`
yaerfeng1989
  • 浏览: 233988 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

分享一个网上的图片识别程序

    博客分类:
  • java
阅读更多

基于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 data
		for (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
分享到:
评论

相关推荐

    我收集到得一些人脸识别的程序和大家分享-人脸识别系统(已经建立人脸库).rar

    使用基于LDA算法的人脸识别程序 国外著名大学成功的人脸检测识别算法中的眨眼检测 用HMM实现的人脸识别及其文档 经过调试完整的人脸检测系统源码 Linear Discriminant Analysis算法

    基于Halcon实现的条形码识别程序C#源码+项目说明+sln解决方案(支持图片、视频识别).zip

    基于Halcon实现的条形码识别程序C#源码+项目说明+sln解决方案(支持图片、视频识别).zip基于Halcon实现的条形码识别程序C#源码+项目说明+sln解决方案(支持图片、视频识别).zip基于Halcon实现的条形码识别程序C#源码+...

    我收集到得一些人脸识别的程序和大家分享-使用基于LDA算法的人脸识别程序(附有相应的论文).rar

    我收集到得一些人脸识别的程序和大家分享-使用基于LDA算法的人脸识别程序.rar 将我收集到得一些比较完整的人脸识别的资料和大家分享,由于附件大小的限制 我只挑选了一些小的发上来,还有些为了减小文件,我把数据...

    一个人脸识别的程序,很好很强大

    在描述中,“我在国外的一个2网站上看到的,用了下,还可以”,虽然没有提供具体网站的名字,但我们可以推断这个程序可能是在一个技术分享或者下载平台发布的,并且用户对其体验感到满意。这表明该程序至少在基本...

    OCR 图片识别.rar

    在“OCR 图片识别.rar”这个压缩包中,我们可以期待找到关于OCR技术的资源或者一个实际的OCR应用工具。通常,这样的压缩包可能包含以下内容: 1. OCR软件:可能是一个安装程序或绿色版OCR软件,用于识别图片中的...

    二维码生成及识别程序

    总的来说,二维码生成及识别程序是一个强大的工具,它利用二维码技术实现了数据的快速编码和解码,极大地推动了数字化信息时代的交流与沟通。通过“PsQREdit_chs.exe”这样的程序,用户可以轻松地将各种数据转化为...

    一个小巧实用的验证码识别程序

    在这个小项目中,我们可以看到一个名为"iamgood_yzsbm.gif"的文件,这很可能是一个实际的验证码图片,用于测试识别程序的效果。GIF是一种常见的图片格式,支持动画,但在这个上下文中,它可能是静态的验证码图像。...

    微信小程序分享.zip

    微信小程序分享功能是微信生态中一个重要的组成部分,它允许用户在使用小程序的过程中,将当前页面或者自定义的内容分享到微信的各个社交场景,如聊天、朋友圈等,从而提高产品的传播性和用户互动性。本资源“微信小...

    Android实战: 如何实现 图片分享菜单加入指定程序

    在图片分享中,我们会创建一个Intent,指定ACTION_SEND类型,表明我们希望执行分享操作。同时,我们需要在目标应用的AndroidManifest.xml中设置对应的Intent Filter,以便我们的应用能被其他应用识别为可接收图片的...

    pdf图片文字识别

    在提供的文件列表中,“安装.bat”可能是用于安装相关软件或工具的批处理文件,而“mfc71.dll”是Microsoft Foundation Classes (MFC)的一个组件,它是一组C++类库,用于开发Windows应用程序,可能在某些OCR工具中...

    我收集到得一些人脸识别的程序和大家分享-Linear Discriminant Analysis算法.rar

    使用基于LDA算法的人脸识别程序 国外著名大学成功的人脸检测识别算法中的眨眼检测 用HMM实现的人脸识别及其文档 经过调试完整的人脸检测系统源码 Linear Discriminant Analysis算法

    我收集到得一些人脸识别的程序和大家分享-经过调试完整的人脸检测系统源码.rar

    使用基于LDA算法的人脸识别程序 国外著名大学成功的人脸检测识别算法中的眨眼检测 用HMM实现的人脸识别及其文档 经过调试完整的人脸检测系统源码 Linear Discriminant Analysis算法

    自己写的个图片管理程序

    自己编写一个图片管理程序,不仅可以满足个性化需求,还能更好地掌控数据,提高工作效率。本文将深入探讨图片管理程序的设计原理、核心功能以及实现方法。 一、图片管理程序的核心功能 1. 图片分类与检索:程序应...

    我收集到得一些人脸识别的程序和大家分享-OPENGL人脸识别(VC 源代码).rar

    使用基于LDA算法的人脸识别程序 国外著名大学成功的人脸检测识别算法中的眨眼检测 用HMM实现的人脸识别及其文档 经过调试完整的人脸检测系统源码 Linear Discriminant Analysis算法

    基于人脸识别的照片分享系统

    综上所述,基于人脸识别的照片分享系统是一个将先进技术应用于实际生活需求的范例,它不仅展示了人脸识别技术在移动设备上的实际应用,也体现了Windows Phone平台开发者的创新能力和技术实力。通过对移动社交、个人...

    夕风OCR图片转文本识别工具V2.2

    "夕风OCR图片转文本识别工具V2.2"便是这样一款基于OCR技术的实用软件,专为用户提供了方便快捷的图片文字识别功能,包括上传图片识别和截图识别两种方式,并支持将识别结果导出为TXT文本格式。 1. **OCR技术原理** ...

    识别图片中的文字代码

    `result['words_result']`是一个列表,包含了图片中所有识别出的文字块及其位置信息。 在实际应用中,你可能需要根据业务需求对结果进行进一步处理,比如去除噪声、校正识别错误等。此外,百度云还提供了其他高级...

    数学公式识别器,有源代码,很好手写识别参考.

    标题中的“数学公式识别器”指的是一个软件或程序,它能够识别并解析数学公式,尤其强调了支持手写识别。这种技术在教育、科研、出版等领域有着广泛的应用,可以帮助用户快速输入复杂的数学表达式,提高工作效率。源...

    我收集到得一些人脸识别的程序和大家分享-用HMM实现的人脸识别及其文档(C ).rar

    使用基于LDA算法的人脸识别程序 国外著名大学成功的人脸检测识别算法中的眨眼检测 用HMM实现的人脸识别及其文档 经过调试完整的人脸检测系统源码 Linear Discriminant Analysis算法

Global site tag (gtag.js) - Google Analytics