没有合适的资源?快使用搜索试试~ 我知道了~
一直以来对Java的图形处理能力表无力,但好像又不是那么一回事,之前用PHP做过一些应用,涉及到验证码的识别,其中有个图片二值化的步骤,今天换成Java来实现下 在java的扩展包javax.imageio中为我们提供了一个类叫ImageIO,这个类提供了一些执行简单编码和解码的静态便捷方法,具体说明大家可以翻下API看看 下面来说下关于图片二值化的原理: 1、首先要获取每个像素点的灰度值。 2、定义一个阀值。 3、将每个像素点的灰度值和它周围的8个像素点的灰度值相叠加再除以9,然后和阀值进行比较。 4、大于阀值则设为黑色,小雨则为白色。
资源推荐
资源详情
资源评论
一直以来对Java的图形处理能力表无力,但好像又不是那么一回事,之前用PHP做过一些应用,涉及到验证码的识别,其中有个图片二值化的步骤,今天换成Java来实现下
在java的扩展包javax.imageio中为我们提供了一个类叫ImageIO,这个类提供了一些执行简单编码和解码的静态便捷方法,具体说明大家可以翻下API看看
下面来说下关于图片二值化的原理:
1、首先要获取每个像素点的灰度值。
2、定义一个阀值。
3、将每个像素点的灰度值和它周围的8个像素点的灰度值相叠加再除以9,然后和阀值进行比较。
4、大于阀值则设为黑色,小雨则为白色。
下面贴下具体代码,注释很全
separator是File类的一个常量,因年代久远的关系,那时候的代码规范没有和现在一样,常量必须大写,属于历史遗留问题,不必太纠结(建议使用separator而不是"/",便于跨平台) 。
BufferedImage里的getRGB得到的是一个ARGB,A代表透明,R代表红色,G代表绿色,B代表蓝色。
包装类Integer里的parseInt方法,第二个可选参数为"要处理几进制的数"。
关于阀值,网上有许多算法,有兴趣的朋友可以自己研究下,这里我随机给出了一个中间数130。
关于图片的灰度值,这里使用简单的(R+G+B)/3。
复制代码
1 import java.awt.Color;
2 import java.awt.image.BufferedImage;
3 import java.io.File;
4 import java.io.IOException;
在java的扩展包javax.imageio中为我们提供了一个类叫ImageIO,这个类提供了一些执行简单编码和解码的静态便捷方法,具体说明大家可以翻下API看看
下面来说下关于图片二值化的原理:
1、首先要获取每个像素点的灰度值。
2、定义一个阀值。
3、将每个像素点的灰度值和它周围的8个像素点的灰度值相叠加再除以9,然后和阀值进行比较。
4、大于阀值则设为黑色,小雨则为白色。
下面贴下具体代码,注释很全
separator是File类的一个常量,因年代久远的关系,那时候的代码规范没有和现在一样,常量必须大写,属于历史遗留问题,不必太纠结(建议使用separator而不是"/",便于跨平台) 。
BufferedImage里的getRGB得到的是一个ARGB,A代表透明,R代表红色,G代表绿色,B代表蓝色。
包装类Integer里的parseInt方法,第二个可选参数为"要处理几进制的数"。
关于阀值,网上有许多算法,有兴趣的朋友可以自己研究下,这里我随机给出了一个中间数130。
关于图片的灰度值,这里使用简单的(R+G+B)/3。
复制代码
1 import java.awt.Color;
2 import java.awt.image.BufferedImage;
3 import java.io.File;
4 import java.io.IOException;
资源评论
qq_20805609
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功