- 浏览: 375040 次
- 性别:
- 来自: 四川
文章分类
- 全部博客 (247)
- 数据库以及sql (11)
- java (48)
- 爬虫学习 (20)
- java编程 (28)
- python编程以及安装和配置 (27)
- oracle数据库 (32)
- mongodb基本操作 (4)
- linux学习 (7)
- easyUI (2)
- nodeJs (8)
- python学习 (16)
- 其他 (13)
- hadoop (1)
- svn (1)
- 汉字 (1)
- windows (2)
- jsp (5)
- fiddler (1)
- ETL (1)
- teamviewer (1)
- maven (4)
- GIT (2)
- datagrip (1)
- ocr (1)
- redis (3)
- mysql (3)
- linux (1)
- 数据服务 (0)
最新评论
图片识别平台:https://www.juhe.cn/
调用平台提供的接口进行图片识别
注:将本地图片进行Base64位编码
本类只用到这两个方法:encodeImgageToBase64(),readContentFromPost()。
代码:
package com.teamdev.jxbrowser.chromium.demoJD.yyzz;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import javax.imageio.ImageIO;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import com.teamdev.jxbrowser.chromium.demoJD.yyzz.ImageUtils;
import sun.misc.BASE64Encoder;
public class ImageUtils {
/**
* 将本地图片进行Base64位编码
*
* @param imgUrl
* 图片的url路径,如xxx.jpg
* @return
*/
@SuppressWarnings("deprecation")
public static String encodeImgageToBase64(File imageFile) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
ByteArrayOutputStream outputStream = null;
try {
BufferedImage bufferedImage = ImageIO.read(imageFile);
outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", outputStream);
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return java.net.URLEncoder.encode( encoder.encode(outputStream.toByteArray()));// 返回Base64编码过的字节数组字符串
}
/**
* 删除会话文件
* */
public static void DeleteSession() {
String path="F:\\yzm\\yzm.jpg";
File file =new File(path);
if (file.exists()) {
try {
file.delete();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("faile delete session.txt ");
}
}
}
/**
* 下载图片
* */
public static void runDownLoad(String fileurl) {
// 构造URL
URL url;
try {
url = new URL(fileurl);
// 打开URL连接
URLConnection con = (URLConnection) url.openConnection();
// 得到URL的输入流
InputStream input = con.getInputStream();
// 设置数据缓冲
byte[] bs = new byte[1024 * 2];
// 读取到的数据长度
int len;
// 输出的文件流保存图片至本地
String path1 = "F:\\yzm\\yzm.jpg";
File f = new File(path1);
// f.mkdirs();
OutputStream os = new FileOutputStream(path1);
while ((len = input.read(bs)) != -1) {
os.write(bs, 0, len);
}
os.close();
input.close();
} catch (MalformedURLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
/**
* 向指定 URL 发送POST方法的请求
*
* @param url
* 发送请求的 URL
* @param param
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
/**
* 解析验证码
* @throws Exception
* */
public static String readContentFromPost(String imgPath) throws IOException {
String str = ImageUtils.encodeImgageToBase64(new File(imgPath));
URL postUrl = new URL("http://op.juhe.cn/vercode/index");
HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.connect();
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
String content = "codeType=8003&&image=&base64Str=" + str + "&dtype=&key=bdb9286128139fa1a61d8b7ca84ab171";
out.writeBytes(content);
out.flush();
out.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder sb=new StringBuilder();
while ((line = reader.readLine()) != null) {
System.out.println(line);
sb.append(line);
}
//{"reason":"成功的返回","result":"rahu","error_code":0}
String result=sb.toString().split("result\":\"")[1].split("\",")[0];
reader.close();
connection.disconnect();
return result;
}
//测试
public static void main(String[] args) throws IOException{
System.out.println(readContentFromPost("F:\\yzm\\yzm.jpg"));
}
}
==================================================================自己的代码
package com.teamdev.jxbrowser.chromium.demoJD.yyzz;
/**
* 抓取京东营业执照信息
* */
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.BrowserPreferences;
import com.teamdev.jxbrowser.chromium.JSValue;
import com.teamdev.jxbrowser.chromium.LoggerProvider;
import com.teamdev.jxbrowser.chromium.events.FinishLoadingEvent;
import com.teamdev.jxbrowser.chromium.events.LoadAdapter;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
public class jd_yyzz {
private static final Color White = null;
/**
*======== 主方法
* */
public static void main(String[] args) throws Exception {
//获取url,解析验证码
String shop_url =Get_Shop_url();
String html=saveImage(shop_url);
System.out.println(html);
}
/**
* ========获取url
* */
public static String Get_Shop_url(){
//此处连接数据库,查询出所有url
String shop_url="https://mall.jd.com/showLicence-652046.html";
return shop_url;
}
/**
* 模拟器截图(只是截取验证码), 调用接口,解析验证码,填入输入框并点击验证,返回验证成功后的html数据
* */
public static String saveImage(String url){
LoggerProvider.getBrowserLogger().setLevel(Level.SEVERE);
LoggerProvider.getIPCLogger().setLevel(Level.SEVERE);
LoggerProvider.getChromiumProcessLogger().setLevel(Level.SEVERE);
Browser browser = new Browser();
BrowserView view = new BrowserView(browser);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(view, BorderLayout.CENTER);
frame.setSize(700, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
BrowserPreferences preferences = browser.getPreferences();
preferences.setImagesEnabled(false);
int viewWidth = 1280;
int viewHeight = 1000;
// Resize view to the required size
view.setBounds(new Rectangle(viewWidth, viewHeight));
// Wait until web page is loaded completely
invokeAndWaitReady(browser,new jd_yyzz().new ViewThread(browser, url));
JSValue bodyHeight = null;
int firstHeight = 400;
int nowHeight = 400;
while (firstHeight != nowHeight) {
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
firstHeight = nowHeight;
bodyHeight = browser.executeJavaScriptAndReturnValue("document.body.scrollHeight");
//nowHeight = 900;
for (int i = firstHeight; i < nowHeight; i = i + 300) {
browser.executeJavaScriptAndReturnValue("window.scrollTo(0,"+ i + ")");
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
System.out.println(firstHeight + ":" + nowHeight);
}
viewHeight = nowHeight + 50;
view.setBounds(new Rectangle(viewWidth, viewHeight));
System.out.println("11111------------------:" + viewHeight);
try {
Thread.sleep(1000 * 1);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
bodyHeight = browser.executeJavaScriptAndReturnValue("document.body.scrollHeight");
System.out.println("222222------------------:" + bodyHeight);
int viewHeight_new = ((Number) bodyHeight.getNumber()).intValue() + 50;
if (viewHeight_new > viewHeight) {
System.out.println("33333------------------:" + viewHeight_new);
}
Image image = view.getImage();
BufferedImage bufferedImage = new BufferedImage(100, 50,BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D graphics = (Graphics2D) bufferedImage.getGraphics();
Double scale = 1.0 / view.getDeviceScaleFactor();
graphics.scale(scale, scale);
graphics.drawImage(image,-585, -355, image.getWidth(view), image.getHeight(view),White, null);
try {
String path = "f://shopdetails.jpg";
ImageIO.write(bufferedImage, "JPG", new File(path));
bufferedImage = null;
} catch (IOException e) {
e.printStackTrace();
}
//验证码图片保存之后获取验证码
try {
String result=ImageUtils.readContentFromPost("f://shopdetails.jpg");
browser.executeJavaScriptAndReturnValue("document.getElementById('verifyCode').value = \""+ result + "\";");
Thread.sleep(1000 * 1);
browser.executeJavaScriptAndReturnValue("document.getElementsByClassName('btn')[0].click();");
Thread.sleep(1000 * 1);
return browser.getHTML();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* 线程
* */
class ViewThread extends Thread {
Browser browser;
String openUrl;
public ViewThread(Browser browser, String openUrl) {
this.browser = browser;
this.openUrl = openUrl;
}
public void run() {
browser.loadURL(openUrl);
}
}
/**
* 模拟器加载url
* */
public static void invokeAndWaitReady(Browser browser, Runnable runnable) {
final CountDownLatch latch = new CountDownLatch(1);
LoadAdapter listener = new LoadAdapter() {
@Override
public void onFinishLoadingFrame(FinishLoadingEvent event) {
if (event.isMainFrame()) {
latch.countDown();
}
}
};
browser.addLoadListener(listener);
try {
runnable.run();
try {
if (!latch.await(60, TimeUnit.SECONDS)) {
// throw new RuntimeException(new TimeoutException());
}
} catch (InterruptedException ignore) {
ignore.printStackTrace();
Thread.currentThread().interrupt();
}
} finally {
browser.removeLoadListener(listener);
}
}
}
调用平台提供的接口进行图片识别
注:将本地图片进行Base64位编码
本类只用到这两个方法:encodeImgageToBase64(),readContentFromPost()。
代码:
package com.teamdev.jxbrowser.chromium.demoJD.yyzz;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import javax.imageio.ImageIO;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import com.teamdev.jxbrowser.chromium.demoJD.yyzz.ImageUtils;
import sun.misc.BASE64Encoder;
public class ImageUtils {
/**
* 将本地图片进行Base64位编码
*
* @param imgUrl
* 图片的url路径,如xxx.jpg
* @return
*/
@SuppressWarnings("deprecation")
public static String encodeImgageToBase64(File imageFile) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
ByteArrayOutputStream outputStream = null;
try {
BufferedImage bufferedImage = ImageIO.read(imageFile);
outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", outputStream);
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return java.net.URLEncoder.encode( encoder.encode(outputStream.toByteArray()));// 返回Base64编码过的字节数组字符串
}
/**
* 删除会话文件
* */
public static void DeleteSession() {
String path="F:\\yzm\\yzm.jpg";
File file =new File(path);
if (file.exists()) {
try {
file.delete();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("faile delete session.txt ");
}
}
}
/**
* 下载图片
* */
public static void runDownLoad(String fileurl) {
// 构造URL
URL url;
try {
url = new URL(fileurl);
// 打开URL连接
URLConnection con = (URLConnection) url.openConnection();
// 得到URL的输入流
InputStream input = con.getInputStream();
// 设置数据缓冲
byte[] bs = new byte[1024 * 2];
// 读取到的数据长度
int len;
// 输出的文件流保存图片至本地
String path1 = "F:\\yzm\\yzm.jpg";
File f = new File(path1);
// f.mkdirs();
OutputStream os = new FileOutputStream(path1);
while ((len = input.read(bs)) != -1) {
os.write(bs, 0, len);
}
os.close();
input.close();
} catch (MalformedURLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
/**
* 向指定 URL 发送POST方法的请求
*
* @param url
* 发送请求的 URL
* @param param
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
/**
* 解析验证码
* @throws Exception
* */
public static String readContentFromPost(String imgPath) throws IOException {
String str = ImageUtils.encodeImgageToBase64(new File(imgPath));
URL postUrl = new URL("http://op.juhe.cn/vercode/index");
HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.connect();
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
String content = "codeType=8003&&image=&base64Str=" + str + "&dtype=&key=bdb9286128139fa1a61d8b7ca84ab171";
out.writeBytes(content);
out.flush();
out.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder sb=new StringBuilder();
while ((line = reader.readLine()) != null) {
System.out.println(line);
sb.append(line);
}
//{"reason":"成功的返回","result":"rahu","error_code":0}
String result=sb.toString().split("result\":\"")[1].split("\",")[0];
reader.close();
connection.disconnect();
return result;
}
//测试
public static void main(String[] args) throws IOException{
System.out.println(readContentFromPost("F:\\yzm\\yzm.jpg"));
}
}
==================================================================自己的代码
package com.teamdev.jxbrowser.chromium.demoJD.yyzz;
/**
* 抓取京东营业执照信息
* */
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.BrowserPreferences;
import com.teamdev.jxbrowser.chromium.JSValue;
import com.teamdev.jxbrowser.chromium.LoggerProvider;
import com.teamdev.jxbrowser.chromium.events.FinishLoadingEvent;
import com.teamdev.jxbrowser.chromium.events.LoadAdapter;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
public class jd_yyzz {
private static final Color White = null;
/**
*======== 主方法
* */
public static void main(String[] args) throws Exception {
//获取url,解析验证码
String shop_url =Get_Shop_url();
String html=saveImage(shop_url);
System.out.println(html);
}
/**
* ========获取url
* */
public static String Get_Shop_url(){
//此处连接数据库,查询出所有url
String shop_url="https://mall.jd.com/showLicence-652046.html";
return shop_url;
}
/**
* 模拟器截图(只是截取验证码), 调用接口,解析验证码,填入输入框并点击验证,返回验证成功后的html数据
* */
public static String saveImage(String url){
LoggerProvider.getBrowserLogger().setLevel(Level.SEVERE);
LoggerProvider.getIPCLogger().setLevel(Level.SEVERE);
LoggerProvider.getChromiumProcessLogger().setLevel(Level.SEVERE);
Browser browser = new Browser();
BrowserView view = new BrowserView(browser);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(view, BorderLayout.CENTER);
frame.setSize(700, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
BrowserPreferences preferences = browser.getPreferences();
preferences.setImagesEnabled(false);
int viewWidth = 1280;
int viewHeight = 1000;
// Resize view to the required size
view.setBounds(new Rectangle(viewWidth, viewHeight));
// Wait until web page is loaded completely
invokeAndWaitReady(browser,new jd_yyzz().new ViewThread(browser, url));
JSValue bodyHeight = null;
int firstHeight = 400;
int nowHeight = 400;
while (firstHeight != nowHeight) {
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
firstHeight = nowHeight;
bodyHeight = browser.executeJavaScriptAndReturnValue("document.body.scrollHeight");
//nowHeight = 900;
for (int i = firstHeight; i < nowHeight; i = i + 300) {
browser.executeJavaScriptAndReturnValue("window.scrollTo(0,"+ i + ")");
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
System.out.println(firstHeight + ":" + nowHeight);
}
viewHeight = nowHeight + 50;
view.setBounds(new Rectangle(viewWidth, viewHeight));
System.out.println("11111------------------:" + viewHeight);
try {
Thread.sleep(1000 * 1);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
bodyHeight = browser.executeJavaScriptAndReturnValue("document.body.scrollHeight");
System.out.println("222222------------------:" + bodyHeight);
int viewHeight_new = ((Number) bodyHeight.getNumber()).intValue() + 50;
if (viewHeight_new > viewHeight) {
System.out.println("33333------------------:" + viewHeight_new);
}
Image image = view.getImage();
BufferedImage bufferedImage = new BufferedImage(100, 50,BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D graphics = (Graphics2D) bufferedImage.getGraphics();
Double scale = 1.0 / view.getDeviceScaleFactor();
graphics.scale(scale, scale);
graphics.drawImage(image,-585, -355, image.getWidth(view), image.getHeight(view),White, null);
try {
String path = "f://shopdetails.jpg";
ImageIO.write(bufferedImage, "JPG", new File(path));
bufferedImage = null;
} catch (IOException e) {
e.printStackTrace();
}
//验证码图片保存之后获取验证码
try {
String result=ImageUtils.readContentFromPost("f://shopdetails.jpg");
browser.executeJavaScriptAndReturnValue("document.getElementById('verifyCode').value = \""+ result + "\";");
Thread.sleep(1000 * 1);
browser.executeJavaScriptAndReturnValue("document.getElementsByClassName('btn')[0].click();");
Thread.sleep(1000 * 1);
return browser.getHTML();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* 线程
* */
class ViewThread extends Thread {
Browser browser;
String openUrl;
public ViewThread(Browser browser, String openUrl) {
this.browser = browser;
this.openUrl = openUrl;
}
public void run() {
browser.loadURL(openUrl);
}
}
/**
* 模拟器加载url
* */
public static void invokeAndWaitReady(Browser browser, Runnable runnable) {
final CountDownLatch latch = new CountDownLatch(1);
LoadAdapter listener = new LoadAdapter() {
@Override
public void onFinishLoadingFrame(FinishLoadingEvent event) {
if (event.isMainFrame()) {
latch.countDown();
}
}
};
browser.addLoadListener(listener);
try {
runnable.run();
try {
if (!latch.await(60, TimeUnit.SECONDS)) {
// throw new RuntimeException(new TimeoutException());
}
} catch (InterruptedException ignore) {
ignore.printStackTrace();
Thread.currentThread().interrupt();
}
} finally {
browser.removeLoadListener(listener);
}
}
}
发表评论
-
是什么java多态
2018-11-14 13:43 694Java多态 例1.1+1=2 例2."1&quo ... -
经纬度转换
2018-09-25 13:57 0package com.teamdev.jxbrowser.c ... -
java连接池技术
2018-09-04 14:26 382转:https://www.cnblogs.com/xdp-g ... -
java 提取url字符串中的域名
2018-08-30 15:24 7382package com.teamdev.jxbrowser.c ... -
java多线程中锁(lock)、wait、notify()的使用
2018-07-13 11:31 5744package com.kai.多线程间的通信; impor ... -
java多线程间的通信实例
2018-07-13 11:00 1426----线程间的通信 public class ListAd ... -
volatile关键字
2018-07-12 11:20 648volatile:使变量在多个线程间可见 public c ... -
java根据百度url获取真正的网页地址
2018-07-09 11:26 1076/** * 根据百度url,获取原本url * @th ... -
java中的base64字符流与图片的相互转换
2018-06-29 13:27 1267//base64字符串转化成图片 public sta ... -
java去除图片水印的解决办法
2018-06-28 10:54 3353原文地址:http://www.oicqzone.com/pc ... -
java中的中文字符转URLEncode
2018-06-26 11:26 797String urlTypeName =java.net.UR ... -
java下载图片到本地实例
2018-06-25 15:34 1357public static void main(String[ ... -
Myeclipse中如何更改jsp默认的打开方式
2018-05-04 17:44 6581.打开myeclipse 2.点击上方的 window-&g ... -
java三大范式
2018-05-02 09:50 759参考地址:https://www.cnblogs.com/ja ... -
请求中设置代理IP
2018-04-18 16:24 972(不能直接JVM设置代理 System.getProperti ... -
java获取当前时间的时间戳
2018-04-08 09:25 1505package com.teamdev.jxbrowser.c ... -
java四种线程池实例 (kaigege)
2018-03-28 11:03 716Java通过Executors提供四种线程池: 1.newCa ... -
java获取IP地址(windos,linux)皆可
2018-03-28 09:44 810package com.teamdev.jxbrowser.c ... -
post 请求
2018-02-05 16:32 530public static void trustEveryo ... -
java robot控制鼠标和键盘(笔记本中打印 i love you)(滑动)
2018-01-25 16:57 2099package robot_java; import jav ...
相关推荐
在本文中,我们将深入探讨如何使用Java调用人脸识别接口,这对于那些正在学习或工作中涉及这一领域的开发者来说是非常有价值的。人脸识别技术已经广泛应用于安全、监控、社交媒体和其他多种场景,而Java作为多平台...
在本文中,我们将深入探讨如何使用Java调用百度的图像识别接口,这是一个强大的工具,能够对图像进行物体和场景的智能识别。以下是一系列详细步骤和技术要点: 1. **创建百度AI账号并获取API Key和Secret Key**: ...
JAVA中医舌诊接口使用示例代码,JAVA舌象图特征人工智能识别代码。检测图像中的舌象,并提取出舌体区域,识别舌象特征属性描述,基于舌象特征辨识体质健康状态、按性别和年龄健康指导。先舌诊辨识体质,按年龄、性别...
百度智能云平台提供了这样的服务,通过API接口,开发者可以方便地将菜品识别功能集成到自己的应用程序中。 首先,让我们来看看项目中使用的几个关键库: 1. **mysql-connector-java-8.0.16.jar**:这是MySQL数据库...
微信接口是微信开放平台提供的一系列服务,允许第三方开发者构建基于微信的应用。这些接口涵盖了消息处理、用户管理、支付、地理位置等多个方面。其中,语音识别接口是专门用于处理语音输入的,它接收音频数据并返回...
总的来说,JavaCV为开发者提供了在不同操作系统上实现图片文字识别的统一接口,简化了多平台开发的复杂性。通过合理利用JavaCV和相关的计算机视觉库,开发者可以在Linux、Windows、Android和Mac等平台上构建高效、...
在本文中,我们将深入探讨如何使用Java调用科大讯飞的离线语音识别DLL来实现Windows系统的离线语音识别功能。首先,我们要理解几个关键概念:JNA(Java Native Access)是Java平台上的一个库,它允许Java代码直接与...
5. **Web开发**:创建一个可以上传图片的Web应用,用户可以上传发票图片,后台调用OCR接口并展示识别结果。这可能涉及到Spring Boot、Thymeleaf或其他Web框架的使用,以及HTML/CSS/JavaScript前端开发。 6. **安全...
Java图片识别技术是一种基于计算机视觉和机器学习的领域,它主要涉及如何在图像数据中提取特征并进行比较,以便找到相似或匹配的图片。在Java中实现图片识别,通常会用到OpenCV、Tesseract OCR、JavaFX以及深度学习...
1. **API接口**:这些接口定义了如何与百度OCR服务进行通信,如上传图片、设置参数、获取识别结果等。 2. **请求和响应对象**:用于封装请求数据和服务器返回的响应信息。 3. **HTTP客户端**:处理网络通信,发送...
主要介绍了Java编程调用微信接口实现图文信息等推送功能,涉及java微信图文信息推送接口调用及相关文件、字符串编码转换相关操作技巧,需要的朋友可以参考下
本文将深入探讨如何使用JAVA调用快递查询接口,并基于提供的源码进行详细解析。 首先,"JAVA调用快递查询接口源码"指的是使用Java编程语言编写的一段代码,它能够与第三方快递查询服务进行交互,获取并处理物流信息...
在本项目中,我们主要探讨如何使用Java EE技术结合百度的人脸识别API,实现一个基于人脸识别的登录系统。首先,我们需要了解几个关键概念和技术。 **Java EE**:全称为Java Platform, Enterprise Edition,是一个...
java实现腾讯ocr图片识别接口调用是指通过java语言调用腾讯提供的ocr图片识别接口,以实现图片识别的功能,例如拍车牌识别车牌号等。下面将详细介绍java实现腾讯ocr图片识别接口调用的知识点。 首先,需要生成签名...
在Java环境中,我们可以利用Java的JNI(Java Native Interface)技术,调用C++编写的OCR库,如OpenCV和Tesseract的C++接口,实现高效的图像处理和字符识别功能。 总的来说,Java OCR中文字符识别技术结合了图像处理...
总结来说,"腾讯身份证验证人脸识别代码java实例"涵盖了使用腾讯AI的身份证识别和人脸识别接口,通过Java编程语言实现与腾讯AI服务器的交互,进行活体检测和身份验证。`FaceRecognitionService.java` 文件是这一过程...
在读取图片后,可以调用`idcard`方法进行身份证识别,传入正面和反面图片的Base64编码: ```java String frontImage = encodeImage(frontPath); // 图片转Base64 String backImage = encodeImage(backPath); Map, ...
在`Barcode.java`这个源代码文件中,很可能包含了使用ZXing库进行条形码识别的示例代码。通常,一个简单的条形码识别流程会包括以下几个步骤: 1. **图像获取**:首先,需要捕获包含条形码的图像,这可以通过摄像头...
Java OCR是Java平台上的OCR实现,使得开发者能够利用这项技术在Java应用程序中处理图像和识别其中的文字。在这个场景中,我们特别提到了“java ocr图片识别”并强调了它“带Tesseract”以及“带中文库”。这表明我们...
Tess4J是Tesseract OCR的Java接口,提供了简单易用的API供Java开发者使用。 2. **Tess4J使用**: 使用Tess4J,首先需要在项目中引入相应的依赖。如果你使用的是Maven,可以在pom.xml文件中添加Tess4J的依赖项。...