使用tesseract識別簡單的圖形碼

Posted on 2019-12-14 17:03  努力成长静待花开  阅读(204)  评论(0编辑  收藏  举报

圖示:

  

 運行效果:

  

 

 實現代碼:

  

Add-Type -AssemblyName System.Drawing
function Identify ($path)
{
    $img=[System.Drawing.Bitmap]::FromFile($path)

    for ($i = 0; $i -lt $img.Width; $i++)
    { 
        for ($j = 0; $j -lt $img.Height; $j++)
        { 
            $_p =$img.GetPixel($i,$j)
            $_pt=($_p.R+$_p.G+$_p.B)/3  #灰度值
            if ($_pt -lt 140) #小於閥值 黑色
            {
                $img.SetPixel($i,$j,[System.Drawing.Color]::FromArgb($_p.A,0,0,0))  
             }
             else
             {#大於閥值設為 白色
              $img.SetPixel($i,$j,[System.Drawing.Color]::FromArgb($_p.A,255,255,255))  
             }
        }
    }
    $newPath=$path.Substring(0,$path.LastIndexOf('.'))+'copy1.jpg'
    $img.Save($newPath)
    tesseract $newPath stdout
    Remove-Item $newPath -Force  #刪除處理後的副本
}

補充:

  下載地址:https://digi.bib.uni-mannheim.de/tesseract/
  argb:ARGB 是一种色彩模式,也就是RGB色彩模式附加上Alpha(透明度)通道,常见于32位位图的存储结构。