C#:图像处理- 文字识别OCR及物体识别

最近想到做个文字识别的模块,其实文字识别例如车牌识别已经非常成熟的技术,学过图像处理的自己都可以写个算法来处理图像,不过懒人也有懒办法,一是用第三方专业做OCR的sdk,比如Tesseract和Asprise,其中前者用google的国内不好访问,虽然开源的如果自己足够专业可以做很好的配置,不过对中文的支持欠佳,难度也大。
还有办法就是用api,那就要用大公司的了,Azure的认知服务就提供,不过收费不便宜,每1000次调用要11块,如果一个电商应用有百万级数量的图片要处理费用还是不能忽视的。还有个免费的级别,每分钟调用上限20次,月上限5K次,一般测试足够了。百度也提供了api,还在测试期需要申请,笔者后面放上试用感觉哈。
还有就是office也自带的图像识别,这个精度会比上面的都差一些,不过能用。首先在VS引用Microsoft Office Document Imageing(OCR),视你安装的office版本这里版本也会不一样。遗憾的是,MODI最后一个独立版本就是Office 2007里面的,在2010及以后的版本里面可以在安装选项的工具里面里面找到OCR,但是装好以后在开始菜单并找不到,因为这个被整合进了Onenote,虽然在Word里面识别Pdf文字也是用的这个但是已经不是独立模块了。

  MODI.Document doc = new MODI.Document();
            doc.Create("D:\\Share\\a1.jpg");
            MODI.Image image;
            MODI.Layout layout;
            doc.OCR(MODI.MiLANGUAGES.miLANG_CHINESE_SIMPLIFIED, true, true);
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < doc.Images.Count; i++)
            {
                image = (MODI.Image)doc.Images[i];
                layout = image.Layout;
                sb.Append(layout.Text+"\n\n");
            }


            this.richTextBox1.Text = sb.ToString();

以上为使用MODI识别图片的代码,执行的时候需要把Any CPU改成X86不然会报错。说实话识别率不高,白底黑字的还可以,黑底白字的就识别不了了,什么如果对格式有要求,比如是一个表格的图片,那得到的结果参考价值不高。

笔者在玩Hololens,看到有另一个物体识别引擎Vuforia,应该是摄像头捕获的物体可以智能识别,大家可以自己玩一下https://developer.vuforia.com/

你可能感兴趣的:(.Net)