convert file.png -colorspace cmyk -fx 'k * (k >= 1.0)' file.ppm
convert file.ppm -colorspace cmyk -fx 'k || (p[-1].k && p[+1].k) || (p[0,-1].k && p[0,+1].k)' out.ppm
tesseract out.ppm result -psm 8 nobatch digits 2>/dev/null res=$(cat result.txt | sed -e 's/[^0-9]//g')
#!/bin/bash c=$(curl -c cook.txt http://zapret-info.gov.ru/ | iconv -f cp1251 | grep capcha | sed -e 's/"/\n/g' | grep services) url="http://zapret-info.gov.ru$c" r=work01 #get curl -b cook.txt "$url" > "$r.png" #prepare convert $r.png -colorspace cmyk -fx 'k * (k >= 1.0)' $r.png convert $r.png -colorspace cmyk -fx 'k || (p[-1].k && p[+1].k) || (p[0,-1].k && p[0,+1].k)' $r.png #exterminate tesseract $r.png $r -psm 8 nobatch digits res=`cat $r.txt | sed -e 's/[^0-9]//g'` #check if [ "$(echo $res | wc -c)" -ne 9 ]; then echo fail && exit fi #send code=$(echo $c | sed -e 's/[^0-9]//g') fin=`curl -b cook.txt -d "act=search&secretcodeId=$code&searchstring=ya.ru&secretcodestatus=$res" 'http://zapret-info.gov.ru/'| iconv -f cp1251` if echo "$fin" | grep -q ' '; then echo succ else echo tesfail fi rm $r.png $r.txt cook.txt
#!/bin/bash score=0 all=0 while [ "$score" -lt 41 ]; do r=`bash per.sh 2>/dev/null` [ "$r" = 'succ' ] && let score++ let all++ echo "$score/$all; $r" done
time bash tt.sh | tee -a log.txt
: 41 : 218 : 5 4 (5m4.178s) : 19% , : 57% : 33% : 12%
Source: https://habr.com/ru/post/157145/
All Articles