我的妈妈不时要通过这些类型的照片来提取图像中的数字并将其重命名为数字.
我正在尝试使用OpenCV,Python,Tesseract来完成这个过程.我真的迷失了尝试用数字提取图像的部分.我怎么能这样做?任何建议我都是OpenCV的新手.
我尝试使用阈值和轮廓提取白色矩形板,但没有用,因为我选择用于打谷的RGB并不总是有效,我不知道如何选择轮廓.
编辑:
查看本文http://yoni.wexlers.org/papers/2010TextDetection.pdf.看起来很有意思
困难如下:不同的注释图像数据库具有不同的标志集.例如,IMM数据库有近60个标记,而BioID有大约17个标记.一些标记在数据库之间是共同的"共享",其中一些不是.
我想问一下如何在Haskell中表示这些数据结构的建议?任务是使用不同的图像数据库,使用相同的工具训练它们,并能够"交叉"比较用它们训练的预测变量所做的结果?
这里有一些假代码开始:
--
data FaceIMM = LeftEye RightEye Nose Mouth Chin
data FaceBioID = LeftEye RightEye LeftNoseTip RightNoseTip NoseTop Mouth
...
-- training
--
predictor <- train confParameters landmarkDescriptors positionValues
...
fitter <- meanShifter . predictors
...
-- detection
--
fitBioID = fitterBioID face
fitIMM = fitterIMM face
...
-- comparison
errorBioID = distance (fitBioID - truth)
errorIMM = distance (fitIMM - truth)
compare errorBioID errorIMM
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,我已经有了"train"和"fit"功能,这些功能目前是存储或接受数据列表.但我想做得更好.
我不希望看到完全抛光的数据结构,而是帮助我开始解决这个问题.
额外:将来我还想做:
采用两个图像数据库的"交叉点",训练一个具有少量地标但更大尺寸的训练数据的钳工.
采用两个图像数据库的"联合"并训练另一个具有最多地标的装配工但可能是较小尺寸的训练数据,因为只使用两个数据库共有的点.
FRANCK:链接到franck数据库
IMM:链接到IMM数据库
BioID:链接到BioID数据库
我正在尝试为Hackerrank的一个问题编写一个解决方案.挑战是计算列表中的元素,元素从0到99不等,因此可以在线性时间内计算它们.这是我得到的:
{-# LANGUAGE BangPatterns #-}
{-# OPTIONS_GHC -O3 #-}
module Main where
import Data.STRef
import Data.Foldable
import Control.Monad
import Control.Monad.ST
main = do
line1 <- getLine
line2 <- getLine
let
!ns = map read $ words line2 :: [Int]
res = runST $ do
refs <- forM [0..99] $ \i ->
newSTRef (0 :: Int)
traverse_ (\x -> modifySTRef' (refs !! x) (+1) ) ns
mapM (\ref -> readSTRef ref) refs
putStrLn . unwords . map show $ res
Run Code Online (Sandbox Code Playgroud)
此代码有效,但速度不够快,无法通过最后一个测试用例.有人可以推荐一项改进吗?( …