其实这个取字模就是上一篇的利用php进行验证码识别里面的一部分,验证码识别的原理就是识别图片里面的文字,然后用0,1表示,放在一个数组内,然后利用识别出来的跟字模里面的数组进行对比,如果相识度再某个水平线上比如百分之八十,我们就可以判断这张图片就是和这个字模对应的字是一样的。那我们取字模就直接是图片里面的那个0,1数组就是我们需要的。取字模需要字对应的图片,大小规格,这样好确定字对应字模的长度。

下面直接上取字模的代码:

define('COLOR', 215);//二值化阀值这个可根据图片上面的颜色进行修改
$filePath = './1.png';//文件路径
list($width,$height) = getimagesize($filePath);//直接获取图片对应的长和宽
$rs = imagecreatefrompng($filePath);
$sourceData =array();

//取特征值
for ($i=0; $i < $height; $i++) { 
	for ($j=0; $j < $width; $j++) { 
		$index = imagecolorat($rs, $j, $i);
		$rgb = imagecolorsforindex($rs, $index);
		//print_r($rgb);
		if ($rgb&#91;'red'&#93;>COLOR && $rgb['blue']>COLOR && $rgb['green']>COLOR) {
			//echo '1';
			$sourceData[$i][$j]=0;	
		}else{
			//echo '0';
			$sourceData[$i][$j]=1;
		}
	}
}
//因为这个不是验证码,所以也不需要进行其它的去噪点等的操作,这个取出来的字模是二维数组,如果需要的话,也可以把里面的二维数组直接进行转化成一维数组。

相关文章:

  • 暂无相关文章