アフメットセントクインテット:
私は、画像処理と私は何をしようとしているCAPTCHAのからのノイズをクリアしているので、上で新しいです。
CAPTCHAのために、私はそれらのさまざまな種類があります。
私が何をしたか最初のもののためにです:
まず、私は黒に黒でない画素毎に変換されます。その後、私は、画像からノイズであるパターンを発見し、それを削除しました。最初のキャプチャのために、それをクリアするのは簡単だったと私はたTesseractでテキストを見つけました。
しかし、私は、第二と第三のためのソリューションを探しています。
これはどのように行かなければなりませんか?私はそれをクリアするために可能な方法は何を意味しますか?
これは私がパターンを削除する方法を示します。
def delete(searcher,h2,w2):
h = h2
w = w2
search = searcher
search = search.convert("RGBA")
herear = np.asarray(search)
bigar = np.asarray(imgCropped)
hereary, herearx = herear.shape[:2]
bigary, bigarx = bigar.shape[:2]
stopx = bigarx - herearx + 1
stopy = bigary - hereary + 1
pix = imgCropped.load()
for x in range(0, stopx):
for y in range(0, stopy):
x2 = x + herearx
y2 = y + hereary
pic = bigar[y:y2, x:x2]
test = (pic == herear)
if test.all():
for q in range(h):
for k in range(w):
pix[x+k,y+q] = (255,255,255,255)
申し訳ありませんが、変数名のために、私はちょうど機能をテストしていました。
おかげで..
アフメットセントクインテット:
ここに私のソリューションです、
まず、私は(手でペイント上で編集)背景パターンを得ました。から:
その後、私は、パターンと画像との違いとそれを埋めるために空白の画像を作成しました。
img = Image.open("x.png").convert("RGBA")
pattern = Image.open("y.png").convert("RGBA")
pixels = img.load()
pixelsPattern = pattern.load()
new = Image.new("RGBA", (150, 50))
pixelNew = new.load()
for i in range(img.size[0]):
for j in range(img.size[1]):
if(pixels[i,j] != pixelsPattern[i,j]):
pixelNew[i,j] = pixels[i,j]
new.save("differences.png")
ここでは違いがあります。..
そして最後に、私はぼかしを追加し、黒ではないビットをクリア。
結果:
pytesseract結果は2041年であると、それはこのイメージの間違っているが、一般的な率は60%程度です。