Android进行图片提取文字

时间:2023-04-27
本文章向大家介绍Android进行图片提取文字,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

       对于外包杯的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的数据转文件存储相关地址进行调用手机的相关地址进行识别。

原文地址:https://www.cnblogs.com/JIANGzihao0222/p/17360422.html