java验证码识别--5

java验证码识别--1

http://blog.csdn.net/problc/article/details/5794460

java验证码识别--2

http://blog.csdn.net/problc/article/details/5797507

java验证码识别--3

http://blog.csdn.net/problc/article/details/5800093

java验证码识别--4

http://blog.csdn.net/problc/article/details/5846614

java验证码识别--5

http://blog.csdn.net/problc/article/details/5983276


(本文仅用于学习研究图像匹配识别原理,不得用于其他用途。)

完整eclipse工程http://download.csdn.net/detail/problc/3829004

前面用的都是用的比较笨的,按像素比较的方法,属于靠感觉,没有什么理论支持的东西,效率也不高。

这里我再试试用SVM的方法。用的是libsvm的java版。

前面的步骤还是一样的,去干扰,分割。

把训练的图片缩放成16*16的大小。

1

把每张图片转换成libsvm的data格式

label indexi:valuei

2 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 13:0 14:1 15:1 16:0 17:0 18:0 19:0 20:1 21:1 。。。。

3 1:0 2:0 3:0 4:0 5:1 6:0 7:0 8:0 9:0 10:0 11:0 12:1 13:0 14:0 15:0 16:0 17:0 18:1 19:1 20:1 21:1 。。。。

前面的label就是对应的图片的数字,indexi表示第i个像素,valuei表示第i个像素的值,像素为黑是valuei为1,白则为0(更合理的方法好像是黑为0.999,白为0.001)

将转换之后的数据存到data.txt里面

然后调用libsvm的svmtrain data.txt.

这样会得到data.txt.model

svm_type c_svc
kernel_type rbf
gamma 0.00390625
nr_class 7
total_sv 187
rho -0.030305073403358983 -0.06465012487258254 -0.013473850514953143 -0.2057364574548591 0.2585742203962866 -0.022815082566896124 -0.05173711373002207 0.02684272876633484 -0.08990192422316207 0.49014282977244295 -0.007697833034227977 0.12210859964254706 -0.011622244796025883 0.29303019765332594 0.07690393951197239 -0.06284951942287494 0.4075315521524534 -0.024304015205013997 0.273659082567747 0.09997688395282468 -0.3551440654987311
label 2 3 4 5 7 8 9
nr_sv 27 32 20 26 19 39 24
SV
1.0 0.0 1.0 0.09512009049662619 1.0 1.0 1:0.0 2:0.0 3:0.0 4:0.0 5:0.0 6:0.0 7:0.0 8:0.0 9:0.0 10:0.0 11:0.0 12:0.0 13:0.0 14:1.0 15:1.0 16:0.0 17:0.0 18:0.0 19:0.0 20:1.0 21:1.0 22:1.0 23:0.0 24:0.0 25:0.0 26:0.0 27:0.0 28:1.0 29:1.0 30:1.0 31:1.0 32:1.0 33:0.0 34:0.0 35:1.0 36:1.0 37:1.0 38:1.0 39:0.0 40:0.0 41:0.0 42:0.0 43:1.0 44:1.0 45:1.0 46:1.0 47:1.0 48:0.0 49:0.0 50:0.0 51:1.0 52:1.0 53:1.0 54:1.0。。。。。。

得到model之后,把要识别的图片同样弄成libsvm的格式,存成predict.txt

label indexi:valuei

0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 13:0 14:1 15:1 16:0 17:0 18:0 19:0 20:1 21:1 。。。。

因为要识别的图片还不知道是哪个数字,所以其中label可以填成任何数

然后用svmpredict predict.txt data.txt.model output.txt

这样识别结果就在output.txt里面了。

  • 2
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值