阅读背景:

NodeJS 验证码识别算法-二值化处理图片_TS张柏的博客_nodejs验证码识别

来源:互联网 

下面的代码是针对下方的图片的处理


function chulixx(data)
{
	var width = data.width
	var height = data.height
	var len = width * height * 4
	var i, tmp=0;
	
	var line = [], linei = 0, lineoption = 3;
	var pic  = [], pici = 0, picoption = 15;
	
	for(i=0;i<len;i+=4) 
	{
		var mr= data.data[i+0]
		var mg= data.data[i+1]
		var mb= data.data[i+2]
		tmp = (299*mr+587*mg+144*mb) / 1000;
		if(tmp < lineoption*10) {
			line[linei++] = '*';
		} else {
			line[linei++] = ' ';
		}
		
		if(tmp < picoption*10) {
			pic[pici++] = '*';
		} else {
			pic[pici++] = ' ';
		}
	}
	
	var pixlen = width*height;
	
	for(i=0;i<pixlen;i++) 
	{
		if(line[i] == '*') 
		{
			var topindex = i - width;
			var bottomindex = i+width;
			var leftindex = i-1;
			var rightindex = i+1;
			var haveSoftPix = 0;
			if((topindex>=0) && (bottomindex<pixlen) && 
				(leftindex>=0)&& (rightindex<pixlen) ) 
			{
					if(pic[topindex] == '*') {
						haveSoftPix++;
					}
					if(pic[bottomindex] == '*') {
						haveSoftPix++;
					}
					/*if(pic[leftindex] == '*') {
						haveSoftPix++;
					}
					if(pic[rightindex] == '*') {
						haveSoftPix++;
					}*/
			}
			
			if(haveSoftPix != 2) {
				pic[i] = ' ';
			}			
		}
		if(pic[i] == '*') {
			data.data[i*4+0] = 0
			data.data[i*4+1] = 0
			data.data[i*4+2] = 0
		} else {
			data.data[i*4+0] = 255
			data.data[i*4+1] = 255
			data.data[i*4+2] = 255
		}
	}
	
	/*var ppo = '';
	for(i=0;i<width*height;i++) {
		if(i%width == 0) ppo+="\n";
		ppo+= ''+pic[i];
	}
	console.log(ppo);*/
	return data
}
function chulixx(data)
{



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: