实现图片中文的识别和获取图片上文字的坐标(java实现)

 实现图片中文的识别和获取图片上文字的坐标(java实现)

           现在利用python来进行图片的文字识别较为普遍,但是如果我们利用常用的家庭电脑来识别,需要的时间比较长,达到20~30s, 但是如果我们采用javacv这个视觉处理库来
   实现图片的识别和文字定位,在同样的电脑配置中需要的时间可以减缩至5s以下,大大提高了工作效率,以下内容为如何利用javacv视觉库处理获取图片上的文字以及文字
   在图片的坐标。已成功调试运行的Demo(windows平台)javacv图片文字定位https://blog.csdn.net/qq_37307077/article/details/111408748_Javacv大图找小图-Java文档类资源-CSDN下载可下载

  1.下载好已训练好的中文语言包chi_sim.traineddata,需要其他语言包可到github上下载。
  2.准备好windows、Linux、max不同操作平台上的javacv api(下载路径
javacv图片文字识别各操作平台的apijar包_javacv文字识别-Java文档类资源-CSDN下载);
  3.上代码。

            获取图片中所有文字:

public class ImageOcr {
	public static void main(String[] args) throws Exception{
		System.out.println("开始识别");
		long starttime = System.currentTimeMillis();
		//获取当前程序执行绝对路径。
		String currentfile=System.getProperty("user.dir");
		String text = Ocr("chi_sim", currentfile, currentfile+"/screencap.png");
		System.out.println("discriminate interval:" + (System.currentTimeMillis() - starttime) + ",ocr text:" + text);
	}

	public static String Ocr(String lang, String langpath, String imageurl) throws UnsupportedEncodingException{
		//创建字节容器。
		BytePointer outtext;
		//启动识别器
		TessBaseAPI ocrapi = new TessBaseAPI();
		//初始化识别器的语言包
		if (ocrapi.Init(langpath, lang) != 0) {
			System.out.println("Could not initialize tesseract");
			return null;
		}
		//读取源图片
		PIX image = pixRead(imageurl);
		//识别器装入图片
		ocrapi.SetImage(image);
		//识别器识别进行段。
		outtext = ocrapi.GetUTF8Text();
		try {
			return outtext.getString("utf-8");
		} finally {
			//最后释放资源
			ocrapi.End();
			outtext.deallocate();
			pixDestroy(image);
		}
	}
}

     4.编译运行效果显示

        用window下的cmd,编译运行如下:

源图片 :              编译识别:                                                                                   

    获取图片上每一行文字的在图片上坐标,效果如下:

          

    获取图片上指定文字的坐标,效果如下:

          

          

5.总结
            由于时间仓促,并没有对语言包进行过多的训练,但识别效果还是不错的,如果图片出现比较多的色块,识别效果并没那么好,当然,你可以通过代码对图片的进行灰度化处理,
         这样也可以有很好的识别效果。由于自身所从事的手机自动化工作,为了更好地处理手机屏幕上的图片,获取到更加精准的手机屏幕信息,减轻工作强度,所以此代码操作
         适用于手机截屏的图片,你也可以识别其他图片的信息。

  • 10
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_37307077

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值