我正在开发一款可以识别车牌(ANPR)的应用程序.第一步是从图像中提取牌照.我正在使用OpenCV来检测基于宽高比的印版,这非常有效:


但正如您所看到的,OCR结果非常糟糕.
我tesseract在我的Objective C(iOS)环境中使用.这些是init启动引擎时的变量:
// init the tesseract engine.
tesseract = new tesseract::TessBaseAPI();
int initRet=tesseract->Init([dataPath cStringUsingEncoding:NSUTF8StringEncoding], [language UTF8String]);
tesseract->SetVariable("tessedit_char_whitelist", "BCDFGHJKLMNPQRSTVWXYZ0123456789-");
tesseract->SetVariable("language_model_penalty_non_freq_dict_word", "1");
tesseract->SetVariable("language_model_penalty_non_dict_word ", "1");
tesseract->SetVariable("load_system_dawg", "0");
Run Code Online (Sandbox Code Playgroud)
如何改善结果?我是否需要让OpenCV进行更多的图像处理?或者有什么我可以用tesseract改进?
我们正试图为我们正在开发的一个与表单字段相关联的软件制定通用方法.
到目前为止这么好,但我们正在进入一个边缘案例,阻止提交一个与另一个处理程序绑在一起的表单/字段.
这是(简明的)用例:
HTML:
<form id="form1">
<input type=field id="field1"/>
</form>
<a href="#" id="link">click to submit</a>
Run Code Online (Sandbox Code Playgroud)
正常行为是当用户在字段中键入"foo"并按下enter键时,表单将被处理并提交给正确的"端点",该端点不一定是表单开头标记中定义的端点.可能有一些函数(来自其他地方)处理此enter事件.
不幸的是,我们无法预测该功能是什么,我们希望保持它的通用性.
在上面的HTML中,单击链接应该在表单字段上触发一个模拟浏览器/用户行为的enter事件,从而触发一些未知的处理程序.
这是我们的Javscript(我们使用的是jquery):
$('#field1').keypress(function (event) {
if (event.which == 13) {
console.log("enter pressed");
//return false; only if needed
}
});
$( "#link" ).click(function() {
var e = jQuery.Event('keypress');
e.which = 13; // #13 = Enter key
$("#field1").focus();
$("#field1").trigger(e);
})
Run Code Online (Sandbox Code Playgroud)
当在字段中输入'foo'并按Enter键时,表单将被提交.但是,当我们单击链接时,我们执行focus()然后触发键事件,但表单未提交.
由于未知的处理程序,我们不能使用submit().