closeScript("GdOcrTool.ahk")
closeScript(Name) {
DetectHiddenWindows On
SetTitleMatchMode RegEx
IfWinExist, i)%Name%.* ahk_class AutoHotkey
{
WinClose
WinWaitClose, i)%Name%.* ahk_class AutoHotkey, , 2
If ErrorLevel
MsgBox, "Unable to close " . Name
; return "Unable to close " . Name
else
MsgBox, "Closed " . Name
; return "Closed " . Name
}
else
return Name . " not found"
}
假设原始文本为 “the place where a piece of information is stored in a computer’s memory”,
鼠标位于 “piece” 中间的 “e” 处。
Text Line Capture 和 Forward Text Line Capture 会依据 Capture2Text 设置页 OCR 2 分别画出两个框,假设识别到的字符串分别为,
Text Line Capture ①:“he place where a piece of informati”,
Forward Text Line Capture ②:“ece of mforma”,
如果②识别到的字符串为:“lece of information is”,这时方式一会失效,切换到方式二:按标点及空格将②截断成 “lece”,且将①拆分成 “the”,“place”,“where”,…,“piece”,… 这时将②的 “lece” 从最末字符起逐个与①拆分出的单词候选比较,找出匹配最多的一个。
鉴于画框中央识别的字符相比于边缘更准确,即使有歧义,也取 Text Line Capture 的识别结果为准。
当然这两种提取方式仅是折衷方案,受限于 Capture2Text 所能提供的结果。
又假设原始文本为 “the place where a piece”,且右边没有任何文字,而鼠标置于 “piece” 的最末尾 “e”。若 OCR 识别到的字符串完全正确,
Text Line Capture ①:“lace where a piece”,
Forward Text Line Capture ②:“e”,
这时候从原理上无法判断这个 “e” 是属于 “lace”,“where” 还是 “piece”。