首页 > 其他分享 >Android进行图片提取文字

Android进行图片提取文字

时间:2023-04-27 22:34:58浏览次数:25  
标签:null 提取 String ti new Android 图片 conn out

       对于外包杯的A37的项目需要,需要进行Andriod的图片文字识别的需要,以下是实现过程。

一:对于web的实现图片文字识别

二:android的拍照,调用图片实现提取图片

三:将web的代码进行移植到Android上

一:对于web的实现图片文字识别

      对于图片识别,就是接口的调用,主要对百度云的接口调用,但是我所采用的是Textin接口。以下是调用接口的相关代码:

      import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws Exception {
        // 通用文字识别
        String url = "https://api.textin.com/ai/service/v2/recognize";
        // 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
        // 示例代码中 x-ti-app-id 非真实数据
        String appId = "c81f*************************e9ff";
        // 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code
        // 示例代码中 x-ti-secret-code 非真实数据
        String secretCode = "5508***********************1c17";
        BufferedReader in = null;
        DataOutputStream out = null;
        String result = "";
        try {
            byte[] imgData = readfile("example.jpg"); // image
            URL realUrl = new URL(url);
            HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("Content-Type", "application/octet-stream");
            conn.setRequestProperty("x-ti-app-id", appId);
            conn.setRequestProperty("x-ti-secret-code", secretCode);
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setRequestMethod("POST"); // 设置请求方式
            out = new DataOutputStream(conn.getOutputStream());
            out.write(imgData);
            out.flush();
            out.close();
            in = new BufferedReader(
                    new InputStreamReader(conn.getInputStream(), "UTF-8"));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送 POST 请求出现异常!" + e);
            e.printStackTrace();
        }
        finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        System.out.println(result);
    }
    public static byte[] readfile(String path)
    {
        String imgFile = path;
        InputStream in = null;
        byte[] data = null;
        try
        {
            in = new FileInputStream(imgFile);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        return data;
    }

}

这可以从Textin通用代码中进行调用,可以免费试用2000次,进行更改照片地址即可使用,然后需要自己的申请appId,secretCode 的权限,更改example.jpg即可使用。

二:android的拍照,调用图片实现提取图片

网络上有很多相关的代码,我是自己摸索出来的,主要靠BitMap的数据转文件存储相关地址进行调用手机的相关地址进行识别。

标签:null,提取,String,ti,new,Android,图片,conn,out
From: https://www.cnblogs.com/JIANGzihao0222/p/17360422.html

相关文章

  • 博客图片无法显示问题恢复
    最近忙昏头了,好久没看博客,今天打开一看,好嘛,图片怎么都不显示了???修复一下问题之前采用的都是csdn的免费编辑器,好用方便还有图床都不用直接弄,做完直接cv到各处都能用;这次原因是自己只弄了个免费图床存重要的头像和头图,然鹅那个图床更新了图片的链接,So,把更新的链接改到博客园后台......
  • Android Studio 运行报app未指定模块错误
    github上clone别人的项目,运行的时候报 app未指定模块综合网上的分析,应该是IDEA的一个bug。解决方法:1.setting.gradle文件里面最后一行,include‘:app’剪切掉;2.同步构建一下gradle;3.将剪切掉的一行重新粘贴回原文件;4.重新同步构建一下gradle;问题解决。......
  • Android studio 过滤
    1.过滤指定字符串,不让其显示 ^(?!.*(你要过滤掉的字符)).*$^(?!.*(got)).*$ 2.过滤包含指定多个字符中的一个,不让其显示^(?!.*(got|Activity)).*$*log中包含got或Activity的log将不显示在控制台。 ====================================== 1.让控制台只显示过滤......
  • WPF中将Canvas导出为png图片
    1publicstaticvoidExportToPng(thisCanvascanvas,Uripath)2{3if(path==null)4{5return;6}7Transformtransform=canvas.LayoutTransform;8canvas.LayoutTransform=null;9Sizesize=newSize(900,600);10......
  • c# asp.net 给一个图片打上水印,并且上传
    usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Drawing;usingSystem.Drawing.Drawing......
  • c# winform 把彩色图片转换为灰色的图片,变灰,灰度图片,速度很快,safe,unsafe
    把彩色图片转换为灰色的图片,直接用.net接口遍历每个像素点转换的效率非常低,800K的图片65万像素我的电脑要用5分钟,而用了unsafe,速度提高了几千倍,同样的图片只用了0.几秒附一个常用的遍历像素点转换的代码构造函数publicTphc(){ InitializeCompon......
  • c# winform 用代码生成一张只有一个像素点的图片,保存到硬盘里或者显示到panel里...
    只生成图片stringnullPath="C:\\黑色头发.jpg";Bitmapb=newBitmap(1,1);b.Save(nullPath);b.Dispose();生成图片并显示到panel里Bitmapb=newBitmap(this.panel1.Width,this.panel1.Height);this.panel1.DrawToBitmap(b,newRectangle(0......
  • antv x6 神奇的图片边框
    昨天才把html节点中的图片转成base格式的,今天就发现一个用户体验的问题;那么是啥呢?就是我从左侧的树形菜单中拖拽节点的时候(鼠标按下也是同样问题),发现节点的图片区域那里会出现一个边框,持续时间不是很长,就几毫秒的时间,但是当你连续拖拽几个不同节点的时候就会发现这个边框竟然又消......
  • LaTeX插入PDF图片空白太大,如何裁剪?
    仅用作记录见参考链接:https://blog.csdn.net/hanshuning/article/details/129610793网址:https://pdfresizer.com/cropLatex表格参考链接:https://www.tablesgenerator.com/......
  • 在linux系统里将图片通过代码打出来
    打开终端1,访问https://sourceforge.net/projects/aa-project/files打开后选择aa-lib和aview分别下载最新版本2,将这两个安装包上传到linux系统里,并解压。3,这两个包,分别./configure&&make&&makeinstall4,完成后,yuminstallImageMagick5,上传一张图片,使用asciiview......