Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'https://laptrinhvb.net/bai-viet/chuyen-de-csharp/---Csharp----Huong-dan-DeCaptcha-su-dung-thu-vien-Aforge-NET/868d43071f4f2649.html
- Imports AForge.Imaging.Filters
- Imports System
- Imports System.Collections.Generic
- Imports System.ComponentModel
- Imports System.Data
- Imports System.Drawing
- Imports System.Linq
- Imports System.Text
- Imports System.Threading.Tasks
- Imports System.Windows.Forms
- Imports Tesseract
- Namespace DeCaptcha
- Public Partial Class Form1
- Inherits Form
- Public Sub New()
- InitializeComponent()
- End Sub
- Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
- End Sub
- Private Function reconhecerCaptcha(ByVal img As Image) As String
- Dim imagem As Bitmap = New Bitmap(img)
- imagem = imagem.Clone(New Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb)
- Dim erosion As Erosion = New Erosion()
- Dim dilatation As Dilatation = New Dilatation()
- Dim inverter As Invert = New Invert()
- Dim cor As ColorFiltering = New ColorFiltering()
- cor.Blue = New AForge.IntRange(200, 255)
- cor.Red = New AForge.IntRange(200, 255)
- cor.Green = New AForge.IntRange(200, 255)
- Dim open As Opening = New Opening()
- Dim bc As BlobsFiltering = New BlobsFiltering()
- Dim close As Closing = New Closing()
- Dim gs As GaussianSharpen = New GaussianSharpen()
- Dim cc As ContrastCorrection = New ContrastCorrection()
- bc.MinHeight = 10
- Dim seq As FiltersSequence = New FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter)
- pic_decaptcha.Image = seq.Apply(imagem)
- Dim reconhecido As String = OCR(CType(pic_decaptcha.Image, Bitmap))
- Return reconhecido
- End Function
- Private Function OCR(ByVal b As Bitmap) As String
- Dim res As String = ""
- Using engine = New TesseractEngine("tessdata", "eng", EngineMode.[Default])
- engine.SetVariable("tessedit_char_whitelist", "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ")
- engine.SetVariable("tessedit_unrej_any_wd", True)
- Using page = engine.Process(b, PageSegMode.SingleLine)
- res = page.GetText()
- End Using
- End Using
- Return res
- End Function
- Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
- If openFileDialog.ShowDialog() = DialogResult.OK Then
- pic_orgin.LoadAsync(openFileDialog.FileName)
- End If
- End Sub
- Private Sub btn_decaptcha_Click(ByVal sender As Object, ByVal e As EventArgs)
- resultLabel.Text = reconhecerCaptcha(pic_orgin.Image)
- End Sub
- End Class
- End Namespace
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement