java图像识别
A. java 可不可以做图像识别的系统
当然可以。
一、纯JAVA开发的技术可行性,即JAVA是否能够实现图像识别的各种算法。
二、如果第一点没有问题,纯JAVA与C++相比,开发效率上的差异。效率要低很多,和具体问题有关。
三、如果第一点没有问题且第二点差异不太大时,纯JAVA与C++相比,相同算法的情况下,软件运行效率的差异。运行效率的差异也很大,也是和具体的算法有关。
B. java怎么实现人脸识别
应该可以通过java调用别人的人脸识别的接口,主要是利用图像处理的技术,识别关键点
C. java识别照片是彩色还是黑白照
你可以判断图片的其中一个像素点,彩色图一般都是RGB组合答禅困成清念的,格式是那种3*3的矩阵袭誉,而黑白图像的像素点是通过一个固定的公式转换来的,转换后的像素点是1*3的矩阵
D. 关于JAVA的图片处理问题
public static boolean write(RenderedImage im, String formatName, File output) throws IOException
使用支持给定格式的任意 ImageWriter 将一个图像写入 File。如果已经有一个 File 存在,则丢弃其内容。
参数:im - 要写入的 RenderedImage。
formatName - 包含格式非正式名称的 String。
output - 将在其中写入数据的 File。
返回:如果没有找到合适的 writer,则返回 false。
抛出: IllegalArgumentException - 如果任何参数为 null。
IOException - 如果在写入过程中发生错误。
说白了,就是按指定的formatName把图片存到file(或OutputStream)中。formatName是已注册的、可以保存图片的writer的非正式名称,比如“jpeg”,“tiff”。如果想知道到底有哪些writer在你的机器上被注册了,用ImageIO.getWriterFormatNames(),返回类型是String[] 。同样的,还有读取图片的reader,对应的是ImageIO.getReaderFormatNames()。
最后要说的是,这个方法是保存图片,和上传没有关系。你可能是要上传图片后再保存吧!
E. 用java写人脸识别算法有哪些
Java中常见的人脸识别算法有:
Eigenface: 这是一种基于主成分分析的人脸识别算法,它将人脸图像映射到一个低维的特征空间。
Fisherface: 这是一种基衡猜于卜拦乎投影的人脸识别算法,它利用线性判别分析技术对人脸图像进行分类。
Local Binary Patterns (LBP): 这是一种基于二进制像素点比较的人脸识别算法,它提取了图像中的型悉纹理特征。
Haar-like特征: 这是一种基于积分图像的人脸识别算法,它检测图像中的边缘特征。
Convolutional Neural Networks (CNNs): 这是一种基于卷积神经网络的人脸识别算法,它模拟了人类大脑中的视觉识别过程。
这些算法都是广泛用于人脸识别应用中的,根据具体需求和应用环境选择合适的算法是很重要的。
F. 想从一张Jpg图像中识别出若干黑色区域,用于对答题卡的涂卡部分进行自动算分。求Java图像分割与识别技术
其实不用想得太难。
处理图像像素用BufferImage类。
首先,你得确定指定的答题卡涂卡的每个可涂选点的物理像素位置,这一步可以用一张空白的答题卡进行人工采集数据,做成一个数据库形式就可以了。定义好这些可涂选点定义对应的选项A\B\C\D。
然后你从扫描仪得到图像,把图像载入,进行像素分析,假设扫描粗悄答题卡放置的方向是正确的,因此不用考虑识别答题卡放置方向。再来,好样的,从之前采集的数据库得到一个可涂选的像素坐标位置,用此去识别答题卡上对应的涂选框是否涂选,以此类推逐行识别,因为你之前已空销经在数据库里面定义好了对应的涂选点的含义了,在这里只要往数据库一查就知道(考生涂选斗凳游的是什么)了!
下一步只要将试卷上考生涂选的选项转换为数据保存到考生考试数据库。
至于如何识别考生涂选的方块,一般答题卡的涂选选框就是一个固定的大小,你只要知道它高多少像素,宽多少像素。考生涂选选项笔迹时一般都和这个选框大小的区域差不多,只要统计这个位置之内的比较黑的颜色数量占此涂选框的面积%50以上,可以认为这个是考试涂选的 选项。
还有个建议:一般答题卡上面都有一些用来给答题卡识别软件使用的定位点,你抓住这些规则就应该能更准确定位到答题卡涂选选项的位置。
G. java检测人脸图片是否高清
Java检测人脸图片是否高清可以通过以下步骤实现。
1、对人脸图片进行图像处理,以提取出图像中的人脸特征。
2、使用支持向量机SVM分类算法,建立一个高清人脸图像与模糊人脸图像的分类模型,用来区分高清图像和模糊图像。
3、将待测人脸图像和模型进行比较,并判断其属于高清图像还是模糊图像。
H. java 实现图片的文字识别
摘要图像识别是目前很热门的研究领域,涉及的知识很广,包括信息论、模式识别、模糊数学、图像编码、内容分类等等。本文仅对使用Java实现了一个简单的图像文本二值处理,关于识别并未实现。
步骤
建立文本字符模板二值矩阵
对测试字符进行二值矩阵化处理
代码
/*
* @(#)StdModelRepository.java
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
* You should have received a of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package cn.e.ynu.sei.recognition.util;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.logging.Level;import java.util.logging.Logger;import javax.imageio.ImageIO;/** * Hold character charImgs as standard model repository.
* @author 88250
* @version 1.0.0.0, Mar 20, 2008
*/
public class StdModelRepository {
/** * hold character images
*/ List charImgs = new ArrayList();
/** * default width of a character
*/ static int width = 16 /** * default height of a character
*/ static int height = 28 /** * standard character model matrix
*/ public int[][][] stdCharMatrix = new int[27][width][height];
/** * Default constructor.
*/ public StdModelRepository() {
BufferedImage lowercase = null try {
lowercase = ImageIO.read(new File("lowercase.png"));
} catch (IOException ex) {
Logger.getLogger(StdModelRepository.class.getName()).
log(Level.SEVERE, null, ex);
}
for (int i = 0 i < 26 i++) {
charImgs.add(lowercase.getSubimage(i * width,
0,
width,
height));
}
for (int i = 0 i < charImgs.size(); i++) {
Image image = charImgs.get(i);
int[] pixels = ImageUtils.getPixels(image,
image.getWidth(null),
image.getHeight(null));
stdCharMatrix[i] = ImageUtils.getSymbolMatrix(pixels, 0).clone();
ImageUtils.displayMatrix(stdCharMatrix[i]);
}
}
}
/*
* @(#)ImageUtils.java
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
* You should have received a of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package cn.e.ynu.sei.recognition.util;import java.awt.Image;import java.awt.image.PixelGrabber;import java.util.logging.Level;import java.util.logging.Logger;/** * Mainipulation of image data.
* @author 88250
* @version 1.0.0.3, Mar 20, 2008
*/
public class ImageUtils {
/** * Return all of the pixel values of sepecified <code>image< .>* @param image the sepecified image
* @param width width of the image
* @param height height of the image
* @return */ public static int[] getPixels(Image image, int width, int height) {
int[] pixels = new int[width * height];
try {
new PixelGrabber(image, 0, 0, width, height, pixels, 0, width).grabPixels();
} catch (InterruptedException ex) {
Logger.getLogger(ImageUtils.class.getName()).
log(Level.SEVERE, null, ex);
}
return pixels;
}
资源来自:
http://blog.csdn.net/chief1985/article/details/2229572
I. 怎么用java实现图片里面的数字识别
图片是由点组成(或者是别的方法),记录点的位置、颜色,控制点就行了。至于ocr,有难度,首先要制作文字的变化范围及整个字各部分的联系,这还是简单的。然后,图像分解就行了。额,我不会编程,稍微会点c++,所以这个回答就是假设如果我做这种程序的思路。