×

java图片识别文字技术

java图片识别文字技术(Java 用图片替换Excel中的指定文本内容 java提取图片中的文字)

admin admin 发表于2024-06-23 18:55:22 浏览14 评论0

抢沙发发表评论

大家好,关于java图片识别文字技术很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于Java 用图片替换Excel中的指定文本内容 java提取图片中的文字的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

本文目录

Java 用图片替换Excel中的指定文本内容 java提取图片中的文字

Java 用图片替换Excel中的指定文本内容 java提取图片中的文字。本文在Java程序代码中通过加载图片替换Excel中的指定文本内容。基本操作思路如下:加载Excel工作簿,获取工作表,查找指定单元格中的文本字符串,将单元格内容设置为空,获取该单元格行列坐标,插入图片到该单元格,保存文档。工具/材料代码编译环境:IntelliJIDEA2018Excel测试文档:.xlsx格式2013版Exceljar包:freespire.xls.jar3.9.1Jdk版本:1.8.0操作方法01引入jar包,02键入如下代码:importcom.spire.xls.*;publicclassReplaceTextWithImg{publicstaticvoidmain(Stringargs){//加载Excel示例文档Workbookworkbook=newWorkbook();workbook.loadFromFile("test.xlsx");//获取第一张工作表Worksheetworksheet=workbook.getWorksheets().get(0);//查找文档中的字符串“图片”CellRangeranges=worksheet.findAllString("C1",false,false);for(CellRangecellrange:ranges){//重置文本为空cellrange.setText("");//获取单元格所在的行列introw=cellrange.getRow();intcolumn=cellrange.getColumn();//添加图片到获取的单元格worksheet.getPictures().add(row,column,"logo.jpg");}//保存文档workbook.saveToFile("ReplaceTextWithImage.xlsx",ExcelVersion.Version2013);workbook.dispose();}}03替换效果:特别提示代码中的文件路径为IDEA项目文件夹路径。也可自定义为其他路径。

求一个实现java图片数字识别并储存在一个数组里的的代码

//byte数组到图片到硬盘上 public void byte2image(byte data,String path){ if(data.length《3||path.equals("")) return;//判断输入的byte是否为空 try{ FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));//打开输入流 imageOutput.write(data, 0, data.length);//将byte写入硬盘 imageOutput.close(); System.out.println("Make Picture success,Please find image in " + path); } catch(Exception ex) { System.out.println("Exception: " + ex); ex.printStackTrace(); } }

怎么用java实现图片里面的数字识别

图片是由点组成(或者是别的方法),记录点的位置、颜色,控制点就行了。至于ocr,有难度,首先要制作文字的变化范围及整个字各部分的联系,这还是简单的。然后,图像分解就行了。额,我不会编程,稍微会点c++,所以这个回答就是假设如果我做这种程序的思路。

java有读取图片里面文字的方法吗(java图片文字提取)

图片上的文字是没法读取的,以为这涉及到图像处理。非常非常复杂!因为如果你非要读取图片上的文字,不是几行代码可以搞定的,首相从matlaB开始学,了解什么是图像处理。然后再开发相应的jar包。当然,你也可以使用相关的软件工具,比如识图软件,通过读取软件的反馈也算是读取了图片上的文字

Java 图像识别 数字图像处理 从一张JPG图片中识别出若干黑色小方块

你需要关注的主要是这个类:java.awt.image.BufferedImage可以查阅相关的API。java图像处理技术在《java核心技术8 下卷》中有比较详细的介绍。相关技术要求和注意事项:RGB标准、ICC配置特性、建议如果进行像素识别的话可以选取关键点的识别方式、而且确认像素是否符合要求使用RGB的范围识别而非精确识别。 至于具体的识别操作过程,需要你详细定义开始识别的位置标准(规定的或者识别图像获取)、边界标准、大小(识别块得SIZE)、分组(给识别块确定属性)等

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 copy 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.edu.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;   /** * 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 = ImageUtils.getSymbolMatrix(pixels, 0).clone();   ImageUtils.displayMatrix(stdCharMatrix);   }   }   }   /*   * @(#)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 copy 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.edu.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;   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;   } 资源来自:***隐藏网址***

怎么样用Java实现将一张图片转成字符画

#首先在D盘写一个文件"temp.html",如下内容《!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"》《html》 《head》 《title》图片转文本《/title》***隐藏网址*** 《style type="text/css"》body { font-family: 宋体; line-height: 0.8em; letter-spacing: 0px; font-size: 8px;}《/style》 《/head》 《body》 ${content} 《/body》《/html》#在D盘放一个图片(放小一点的)"a.jpg"#运行如下JAVA代码:import java.awt.Color;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import javax.imageio.ImageIO;public class Test { /** 此处设置灰度字符,此处只用十个字符,可以设置更多 */ private static char { ’.’, ’,’, ’*’, ’+’, ’=’, ’&’, ’$’, ’@’, ’#’, ’ ’ }; public static void main(String args) throws IOException { // 读取图片 BufferedImage bfedimage = ImageIO.read(new File("D:\\a.jpg")); // 图片转字符串后的数组 char; for (int x = 0; x 《 bfedimage.getWidth(); x++) { for (int y = 0; y 《 bfedimage.getHeight(); y++) { int rgb = bfedimage.getRGB(x, y); Color c = new Color(rgb); // 得到灰度值 int cc = (c.getRed() + c.getGreen() + c.getBlue()) / 3; css; } } // 取得模板HTML String temp = readFile(new File("D:\\temp.html"),"gbk"); StringBuffer sb = new StringBuffer(); // 开始拼接内容 for (int y = 0; y 《 css.length; y++) { for (int x = 0; x 《 css.length; x++) { sb.append(css); } sb.append("\r\n"); } System.out.println(sb.toString()); // 生成文件 String content = toHTML(sb.toString()); String filecontent = replaceStrAllNotBack(temp, "${content}", content); writeFile(new File("D:\\content.html"), filecontent, "gbk"); } public static String toHTML(String s) { s = s.replaceAll("&", "&"); s = s.replaceAll(" ", " "); s = s.replaceAll("》", "》"); s = s.replaceAll("《", "《"); s = s.replaceAll("\"", """); s = s.replaceAll("\\\r\\\n", "《br/》"); s = s.replaceAll("\\\r", "《br/》"); s = s.replaceAll("\\\n", "《br/》"); return s; } public static String replaceStrAllNotBack(String str, String strSrc, String strDes) { StringBuffer sb = new StringBuffer(str); int index = 0; while ((index = sb.indexOf(strSrc, index)) != -1) { sb.replace(index, index + strSrc.length(), strDes); index += strDes.length(); } return sb.toString(); } /** * 读文件(使用默认编码) * * @param file * @return 文件内容 * @throws IOException */ public static String readFile(File file, String charset) throws IOException { InputStreamReader fr = new InputStreamReader(new FileInputStream(file), charset); StringBuffer sb = new StringBuffer(); char; int i = 0; while ((i = fr.read(bs)) != -1) { sb.append(bs, 0, i); } fr.close(); return sb.toString(); } /** * 写文件 * * @param file * @param string * 字符串 * @param encoding * 编码 * @return 文件大小 * @throws IOException */ public static int writeFile(File file, String string, String encoding) throws IOException { FileOutputStream fos = new FileOutputStream(file); try { byte bs = string.getBytes(encoding); fos.write(bs); return bs.length; } finally { fos.close(); } }}#打开"D:\content.html"文件看效果吧。有什么问题可以联系我。

想从一张Jpg图像中识别出若干黑色区域,用于对答题卡的涂卡部分进行自动算分求Java图像分割与识别技术

其实不用想得太难。处理图像像素用BufferImage类。首先,你得确定指定的答题卡涂卡的每个可涂选点的物理像素位置,这一步可以用一张空白的答题卡进行人工采集数据,做成一个数据库形式就可以了。定义好这些可涂选点定义对应的选项A\B\C\D。然后你从扫描仪得到图像,把图像载入,进行像素分析,假设扫描答题卡放置的方向是正确的,因此不用考虑识别答题卡放置方向。再来,好样的,从之前采集的数据库得到一个可涂选的像素坐标位置,用此去识别答题卡上对应的涂选框是否涂选,以此类推逐行识别,因为你之前已经在数据库里面定义好了对应的涂选点的含义了,在这里只要往数据库一查就知道(考生涂选的是什么)了!下一步只要将试卷上考生涂选的选项转换为数据保存到考生考试数据库。至于如何识别考生涂选的方块,一般答题卡的涂选选框就是一个固定的大小,你只要知道它高多少像素,宽多少像素。考生涂选选项笔迹时一般都和这个选框大小的区域差不多,只要统计这个位置之内的比较黑的颜色数量占此涂选框的面积%50以上,可以认为这个是考试涂选的 选项。还有个建议:一般答题卡上面都有一些用来给答题卡识别软件使用的定位点,你抓住这些规则就应该能更准确定位到答题卡涂选选项的位置。

OK,关于java图片识别文字技术和Java 用图片替换Excel中的指定文本内容 java提取图片中的文字的内容到此结束了,希望对大家有所帮助。