ノイズ除去するための方法をキャプチャ上のPythonの画像処理

アフメットセントクインテット:

私は、画像処理と私は何をしようとしている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%程度です。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=21887&siteId=1