我试图制作一个capcha求解器,但我遇到了一些麻烦。我想要解决的验证码具有不同的彩色背景。
我需要将其转换为白色背景上的黑色文字,以便tesseract-ocr
我试过了
convert *.png -threshold 50% *.png
只显示一些数字。
答案 0 :(得分:1)
简单的50%阈值处理的问题是两种颜色都可能比50%灰色轻,因此会变成白色。或者,相反,两种颜色都可能比中灰色更暗,因此bith会变成黑色。
您需要进行双色量化才能获得2种颜色,然后转到灰度并进行标准化,使较浅的颜色变为白色,较暗的颜色变为黑色。我不是靠近电脑去测试,但那应该是:
convert input.png -colors 2 -colorspace gray -normalize result.png
现在,您会发现一些图像被反转(白色为黑色而黑色为白色),因此您可以测试左上角像素,如果是白色,则反转图像。或者,你可以得到图像的平均值,如果它超过0.5,则表明图像大部分是白色,因此需要反转。
反转:
convert input.png -negate output.png
获取左上角的像素:
convert image.png -format '%[pixel:p{0,0}]' info:-
获得平均值:
convert image.png -format "%[mean]" info:-