JAVA简单二值化图像处理
来源:互联网 发布:人工智能都有哪些 编辑:程序博客网 时间:2024/06/05 16:40
package downloadimg;import java.awt.Color;import java.awt.image.BufferedImage;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java.net.URL;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import java.util.logging.Level;import java.util.logging.Logger;import javax.imageio.ImageIO;import javax.net.ssl.HttpsURLConnection;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;/** * @author Cytosine * @thanks Wizard,BreakShadow */public class SimpleBinarization { public static void main(String args[]){ for(int i=0;i<100;i++){ BufferedImage bi=httpsGetImg(httpsGetImgURL()); int width=bi.getWidth(); int height=bi.getHeight(); int pixel; BufferedImage binary=new BufferedImage(width,height,BufferedImage.TYPE_BYTE_BINARY); for(int minx=bi.getMinX();minx<width;minx++){ for(int miny=bi.getMinY();miny<height;miny++){ pixel=bi.getRGB(minx, miny); if(pixel==-1){//此时为白色/透明背景 binary.setRGB(minx, miny, Color.WHITE.getRGB()); }else{ binary.setRGB(minx, miny, Color.BLACK.getRGB()); } } } String p="D:\\TEST\\"+i+".png"; File f=new File(p); try { ImageIO.write(bi, "png", f); } catch (IOException ex) { Logger.getLogger(SimpleBinarization.class.getName()).log(Level.SEVERE, null, ex); } String path="D:\\TEST\\"+i+"b.png"; File file=new File(path); try { ImageIO.write(binary, "png", file); } catch (IOException ex) { Logger.getLogger(SimpleBinarization.class.getName()).log(Level.SEVERE, null, ex); } } } public static String httpsGetImgURL(){ StringBuffer requestResult=new StringBuffer(); BufferedReader bufferedReader=null; try{ SSLContext ssl=SSLContext.getInstance("TLS"); ssl.init(null, new TrustManager[]{cytoX509TrustManager}, null); URL url=new URL("https://passport.baidu.com/v2/?reggetcodestr"); HttpsURLConnection conn=(HttpsURLConnection)url.openConnection(); conn.setSSLSocketFactory(ssl.getSocketFactory()); conn.setRequestMethod("GET"); conn.setDoOutput(true); conn.connect(); bufferedReader=new BufferedReader(new InputStreamReader(conn.getInputStream())); }catch(Exception ex){ ex.printStackTrace(); } try{ String line; while((line=bufferedReader.readLine())!=null){ requestResult.append(line); } bufferedReader.close(); }catch(Exception ex){ ex.printStackTrace(); } String all=requestResult.toString(); String[] spl=all.split("'"); String verifystr=spl[3]; String result="https://passport.baidu.com/cgi-bin/genimage?"+verifystr; return result; } public static BufferedImage httpsGetImg(String url){ BufferedInputStream bufferedInputStream=null; ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream(); try{ SSLContext ssl=SSLContext.getInstance("TLS"); ssl.init(null, new TrustManager[]{cytoX509TrustManager}, null); URL realURL=new URL(url); HttpsURLConnection conn=(HttpsURLConnection)realURL.openConnection(); conn.setSSLSocketFactory(ssl.getSocketFactory()); conn.setRequestMethod("GET"); conn.connect(); bufferedInputStream=new BufferedInputStream(conn.getInputStream()); }catch(Exception ex){ ex.printStackTrace(); } try{ int b; while((b=bufferedInputStream.read())!=-1){ byteArrayOutputStream.write(b); } bufferedInputStream.close(); }catch(Exception ex){ ex.printStackTrace(); } byte[] imgData=byteArrayOutputStream.toByteArray(); ByteArrayInputStream in=new ByteArrayInputStream(imgData); BufferedImage result=null; try { result = ImageIO.read(in); } catch (IOException ex) { Logger.getLogger(DownloadImgWithoutType.class.getName()).log(Level.SEVERE, null, ex); } return result; } //https证书 private static X509TrustManager cytoX509TrustManager=new X509TrustManager(){ public X509Certificate[] getAcceptedIssuers(){ return null; } @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } };}
0 0
- JAVA简单二值化图像处理
- java中图像简单处理
- 简单的Java图像处理程序
- 八叉树图像处理的java简单实现
- Java实现二值化处理图像
- c# 中图像的简单二值化处理
- java图像处理---特殊颜色二值化处理
- 图像的简单处理
- 简单的图像处理
- 图像分割简单处理
- Opengl简单图像处理
- 【图像处理】简单的图像处理软件
- java图像处理
- java 高级图像处理
- Java图像处理
- Java图像处理
- Java imageIO处理图像
- Marvin java图像处理
- 猫哥带你去战斗——Java Web开发——Java篇[5]——大王,有异常!
- log4j的基本使用方法
- 10.(初级)CSS边框border
- JVM内存管理------JAVA语言的内存管理概述
- 深入.NET和C#平台 第二章
- JAVA简单二值化图像处理
- Java NIO系列教程(八) SocketChannel
- 【Unity&光照】Unity光照资料总览
- 8,词根 - 切分、部分
- iOS多张图片总是只能上传一张的问题
- 微视界app开发练习
- Bootstrap Validate表单验证
- 猫哥带你去战斗——Java Web开发——Java篇[6]——处理异常
- 将网页分享到微信带有缩略图和简介