Sha256: d0904517f04a3baae7aa01ff2702ba5663e4df3feb1ffb20e068579b2d2ad53d
Contents?: true
Size: 1.58 KB
Versions: 396
Compression:
Stored size: 1.58 KB
Contents
module OCR (convert) where import Data.List.Split (chunksOf) import Data.List (transpose, intercalate) import qualified Data.Map as M type CharVec = [String] convert :: String -> String convert = intercalate "," . map (map recognizeDigit) . grid where grid = map gridRow . chunksOf digitRows . lines gridRow = transpose . map (chunksOf digitCols) recognizeDigit = flip (M.findWithDefault garble) digitMap digitCols = 3 digitRows = 4 garble = '?' digitMap :: M.Map CharVec Char digitMap = M.fromList $ zip ocrDigits ['0'..] where ocrDigits = [ [ " _ " , "| |" , "|_|" , " " ] , [ " " , " |" , " |" , " " ] , [ " _ " , " _|" , "|_ " , " " ] , [ " _ " , " _|" , " _|" , " " ] , [ " " , "|_|" , " |" , " " ] , [ " _ " , "|_ " , " _|" , " " ] , [ " _ " , "|_ " , "|_|" , " " ] , [ " _ " , " |" , " |" , " " ] , [ " _ " , "|_|" , "|_|" , " " ] , [ " _ " , "|_|" , " _|" , " " ] ]
Version data entries
396 entries across 396 versions & 1 rubygems