🔥
Caster 開發日誌
  • Java
    • JVM Performance Tool
      • Java Debug Wire Protocol (JDWP) 的詳細介紹
      • JConsole 詳細介紹
    • Spring Boot
      • Spring Security
      • Spring Boot Admin
      • Spring Event
      • Spring AOP
      • Spring Boot JUnit 5
      • Apache Dubbo
    • Reflect 應用
    • ELK + F 建構
    • Socket.IO
    • OCR - 光學字元辨識
    • 讀取JAR resource文件
    • LocalTime & MySQL時間精度
    • Gradle multi module
    • MyBatis-Plus
    • Java Date operation
    • Java IP to Long
    • Apache Commons lang3 應用
      • Function 應用
    • Cloud Platform
      • Amazon S3
        • SDK V1
          • Bucket
        • SDK V2
          • Bucket
      • Google Cloud Platform
      • Azure Cloud
        • Storage
      • OVHcloud
        • Config
    • SSL/TLS工具
    • Util 工具
      • Jackson Json工具
      • Charles應用
      • JMeter – Performing Distributed Load Testing with Docker
    • Redis
      • Stream
      • Redisson 分布式鎖機制
      • Create Redis Cluster Using Docker
      • List Operations
    • Java 8
      • method & constructor Reference
      • CompletableFuture
      • FunctionInterface
      • Stream 應用
      • 繁簡轉換 - 簡易調整
    • MySQL
      • 建立測試用 流水號Table
      • SQL 效能調校 - Explain
      • SQL 效能調校 - Partition
      • 排程 - Event
    • Apache ShardingSphere
  • Kubernetes
    • 初入江湖(K8S)
    • 零中斷服務滾動更新
    • Kubernetes DNS
    • Ingress & Ingress Controller 教學
    • Ingress TLS Easy setup
  • 指令集
  • Telegram
  • SourceTree
    • 踩坑紀錄(ㄧ) - Git Flow
    • 踩坑紀錄(二) - 修改檔名
  • 專案統計
    • Robot
    • Recharge
  • GitHub
    • Actions
  • GitLab
    • 介紹 GitLab
    • 使用 Docker 自架 GitLab
    • 簡介 GitLab CI/CD
      • GitLab Runner 詳細介紹與設定方式
Powered by GitBook
On this page
  • 找個測試範例 - 中華郵政3+2驗證碼圖片
  • 分析圖片
  • 解析圖片策略架構(Policy)
  • 去噪流程架構(Clean)
  • 設計Web架構
  • 實際去噪測試
  1. Java

OCR - 光學字元辨識

OCR英文全稱是Optical Character Recognition,中文叫做光學字元識別。它是利用光學技術和計算機技術把印在或寫在紙上的文字讀取出來,並轉換成一種計算機能夠接受、人又可以理解的格式。

PreviousSocket.IONext讀取JAR resource文件

Last updated 1 year ago

找個測試範例 - 中華郵政3+2驗證碼圖片

分析圖片

首先看到這圖片除了數字之外有很多斜的灰色干擾線,然後驗證碼都是以數字為主,且每個數字各自不同顏色 除了干擾線背景是有顏色且無邊匡。 理出幾個結論:

  • 驗證碼皆為數字且不同顏色。

  • 背景有顏色無邊匡

  • 主要為灰色干擾線

解析圖片策略架構(Policy)

主要為處理圖片噪點策略,設計圖片RGB輸出Console Log,以利後續判斷噪點處置方式,將圖片上每個店都以座標形式呈現並且存入Map方便取用檢視。

RGB輸出Console Log

判斷噪點參考範圍(shape)

根據每個點產生不一樣大小的判斷範圍

去噪流程架構(Clean)

主要流程架構
	獲取圖片、判斷OCR辨識結果是否預期(contain code)
副流程架構
	初始化圖片(取得圖片參數[長、寬]、GIF圖檔等等)
	圖片進行去噪(設計需要使用哪些過濾器Queue)
設計要使用哪個圖片策略

設計Web架構

為了方便測試先設計一個API接收圖片進行測試

實際去噪測試

先將圖片增加亮度,根據增加亮度的結果超過一定數值直接判斷成噪點並且變成白色。

再根據圖上孤立的噪點進行判斷並去除

完成兩項已經可以發現噪點已經都不見了,可以再將圖片進行二階化

再將最終圖片進行OCR判斷,當你能將塗上噪點去除完整,辨識結果就會提高。

另外測試玉山菁英甄選系統登入驗證碼

測試原圖
console顯示驗證碼RGB
最終source code
原圖
去噪後
OCR辨識結果