请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

毛同学

注册会员

4

主题

9

帖子

27

积分

注册会员

积分
27
毛同学
注册会员   /  发表于:2016-3-25 17:50  /   查看:3584  /  回复:5
由于ORC识别,我发现图片格式必须是TIF,才能进行ORC文字识别,然而控制扫描仪之后获取的图片对象
private void _twain_AcquirePage(object sender, TwainAcquirePageEventArgs e)
        {
            try
            {
                if (_transferMode != TwainCapabilityValue.TransferMechanismFile)
                {
                    if (e.Image != null)
                    {
                        if (_viewer.Image == null)
                        {
                            _viewer.Image = e.Image;
                        }
                        else
                        {
                            _viewer.Image.AddPage(e.Image);
                            _viewer.Image.Page = _viewer.Image.PageCount;
                        }
                        //保存图片
                        currentScanFilePath = SaveImage();
                    }
                }
                else
                    MessageBox.Show(this, "Acquired page(s) is saved to file(s)", "Acquire to File");
            }
            catch (Exception ex)
            {
                //Messager.ShowError(this, ex);
                MessageBox.Show(this, ex.Message);
            }
        }

e.Image并不是tif格式,具体什么格式不清楚,直接用此对象,进行ORC识别会出错,所以我的操作是
利用RasterCodecs.save()方法,先保存成Tif格式图片
RasterCodecs  _codecs=new RasterCodecs();
_codecs.Save(_viewer.Image,
                            _fileName,
                            RasterImageFormat.Tif
                            _bitsPerPixel,//色彩比
                            _viewer.Image.Page,
                            _viewer.Image.PageCount,
                            1,
                            CodecsSavePageMode.Overwrite);

再重新把图片从本地文件重新加载赋值给_viewer.Image,_viewe是ImageViewer控件

这样效率太低,请问有没有代码可以直接转格式


5 个回复

倒序浏览
AvoCaDolol活字格认证 Wyn认证
社区贡献组   /  发表于:2016-3-28 16:57:56
沙发
您好, 应该不用保存就可以直接识别。
具体例子可以参考OCR MultiEngine Demo,这个例子里面就可以扫描后直接识别。
或者可以参考\LEADTOOLS 19\Shortcuts\OCR - MICR - ICR - OMR\.NET Class Libraries\More OCR Demos
下的OCR TWAIN Scanning 64-bit Demo,通过扫描进行OCR识别。

以上,谢谢。
回复 使用道具 举报
毛同学
注册会员   /  发表于:2016-3-28 18:26:01
板凳
AvoCaDolol 发表于 2016-3-28 16:57
您好, 应该不用保存就可以直接识别。
具体例子可以参考OCR MultiEngine Demo,这个例子里面就可以扫描后 ...

你好,您说的Demo我看过,是用IOcrDocument对象来处理扫描出来的图片的,我现在的需求不一样,扫描后图片e.image,直接赋值到图片控件后,OCR识别会报错的,除非我加载的图片是TIF格式的,即图片控件的对象=RasterCodecs.load(xxx.tif);这样的话,OCR识别能正常识别不报错。

即,我需要把扫描仪返回的图片对象e.image,用代码转换成TIF格式,再赋值给图片控件,再OCR识别。
回复 使用道具 举报
AvoCaDolol活字格认证 Wyn认证
社区贡献组   /  发表于:2016-3-28 19:31:36
地板
毛同学 发表于 2016-3-28 18:26
你好,您说的Demo我看过,是用IOcrDocument对象来处理扫描出来的图片的,我现在的需求不一样,扫描后图片 ...

您好,

您能否将您的全部代码发上来,我帮您看看错误出在哪
回复 使用道具 举报
毛同学
注册会员   /  发表于:2016-3-29 12:07:29
5#
AvoCaDolol 发表于 2016-3-28 19:31
您好,

您能否将您的全部代码发上来,我帮您看看错误出在哪

感谢热心答复,问题解决了,图片jpg格式或者其他格式都能识别,不知道为啥之前我加载jpg格式会报错,现在可以了。OCR识别文字,跟图片格式无关。
回复 使用道具 举报
AvoCaDolol活字格认证 Wyn认证
社区贡献组   /  发表于:2016-3-29 12:14:32
6#
毛同学 发表于 2016-3-29 12:07
感谢热心答复,问题解决了,图片jpg格式或者其他格式都能识别,不知道为啥之前我加载jpg格式会报错,现在 ...

好哒,点个赞~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部