篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html

篇二:基于OneNote难点突破和批量识别:http://www.cnblogs.com/baiboy/p/wpf1.html

篇三:批量处理后的txt文件入库处理:http://www.cnblogs.com/baiboy/p/wpf2.html

篇四:关于OneNote入库处理以及审核:http://www.cnblogs.com/baiboy/p/wpf3.html


【小记】:大胆尝试才能突破,某个中医药大学有一批图片需要处理(OCR),然后进行数据挖掘。之前没有接触过OCR这个东西,但是还是应允了。在网上搜索一番,关于中文图片识别,最终敲定为基于微软的OneNote,其识别率相对较高。网上这个技术点的资料真心不多,后来于博客园找到一篇博文,但是那个程序还是bug百出,而且只是单处理。后来经过一番摸索逐个突破,批处理完成。然后进行界面设计,这些零碎工作完成后,便是入库处理。由于OneNote生成的xml文件封装好的,即不可视的。便将其代码处理生成txt文件,再进行Oracle入库处理。入库前需要文件内容审核,并且在WPF开发中数据绑定和分页中做了独特处理。现在经过半个月的工作,本项目做个阶段总结。一则知识总结便于二次开发,尽量保持程序流畅性,核心知识做以梳理;另外,相关WPFOneNote常用技术共享,便于部分园友所需。本人技术有限,欢迎交流。项目还未结束,暂作阶段文章发布,随后相继发布。


篇四:关于OneNote入库处理以及审核

【开篇概述】:文本作为系列文章的最后一篇,主要对页面进行设计布局和审核页面的完善,其中主页面用户可以查询审核通过的信息,浏览详细信息。也可以作为导航到orc页面,对批量图片进行文字处理,处理后的文件,可以通过入库页面对文件信息提取。达到半自动填写表格的状态,由于文件信息不一定符合主观要求或者格式不一致,所以设置了审核页面,也是信息修改页面,信息无误后,选择下面审核通过复选框即可成功入库。后面就是交付做数据挖掘处理了。效果如图所示

主页面:

完整代码:

namespace OnenoteOCRDemo
{/// <summary>/// Index.xaml 的交互逻辑/// </summary>public partial class Index : Window{public Index(){InitializeComponent();this.Loaded += new RoutedEventHandler(MainWindow_Loaded);}page page1 = new page();void MainWindow_Loaded(object sender, RoutedEventArgs e){this.c1.Children.Add(page1);this.Loaded += delegate{InitData();};dataGrid1.LoadingRow += new EventHandler<DataGridRowEventArgs>(dataGrid1_LoadingRow);}void dataGrid1_LoadingRow(object sender, DataGridRowEventArgs e){e.Row.Header = e.Row.GetIndex() + 1;    //设置行表头的内容值
        }//查询private void InitData(){string sql = "select * from T_TCM_THESIS where auditflag=1  order by ID desc";DataSet ds = MYHelper.SQLHelper.GetOrlData(sql);if (ds.Tables[0].Rows.Count > 0){page1.ShowPages(this.dataGrid1, ds, 10);}else{System.Windows.Forms.MessageBox.Show("Erroy");}}private void Window_Loaded(object sender, RoutedEventArgs e){InitData();}private void hlorc_Click(object sender, RoutedEventArgs e){Main m = new Main();m.Show();}private void hltext_Click(object sender, RoutedEventArgs e){TextData td = new TextData();td.Show();}//刷新private void hlnew_Click(object sender, RoutedEventArgs e){InitData();}private void hyper2_Click(object sender, RoutedEventArgs e){this.Hide();DataRowView mySelectedElement = (DataRowView)dataGrid1.SelectedItem;int ID = Convert.ToInt32((mySelectedElement.Row[0]));  //获取该行的FID  falg f = new falg(ID,0);f.Show();}}
}

View Code


审核页面:

完整代码:

namespace OnenoteOCRDemo
{/// <summary>/// falg.xaml 的交互逻辑/// </summary>public partial class falg : Window{int i;public falg(int id,int n){InitializeComponent();txt.Text = id.ToString();THESIS(id);i = n;if (i == 0){btnupdate.Visibility = System.Windows.Visibility.Hidden;cbflag.Visibility = System.Windows.Visibility.Hidden;txtflag.Text="审核通过";}}private void THESIS(int id){string sql = "select * from T_TCM_THESIS where id="+id;DataTable dt = MYHelper.SQLHelper.GetTabOrlData(sql);if (dt.Rows.Count>0){txtdocname.Text = dt.Rows[0]["docname"].ToString();txtauthor.Text = dt.Rows[0]["author"].ToString();txtcompany.Text = dt.Rows[0]["authorcompany"].ToString();txtcontent.Text = dt.Rows[0]["content"].ToString();txtdigest.Text = dt.Rows[0]["digest"].ToString();txtdisease.Text = dt.Rows[0]["disease"].ToString();txtdoctype.Text = dt.Rows[0]["doctype"].ToString();txtenglishtitle.Text = dt.Rows[0]["englishtitle"].ToString();txtkeyword.Text = dt.Rows[0]["keyword"].ToString();txtmemo.Text = dt.Rows[0]["memo"].ToString();txtpath.Text = dt.Rows[0]["path"].ToString();txtsource.Text = dt.Rows[0]["source"].ToString();txtsourcetype.Text = dt.Rows[0]["sourcetype"].ToString();txtsummary.Text = dt.Rows[0]["summary"].ToString();txttitle.Text = dt.Rows[0]["title"].ToString();txtyears.Text = dt.Rows[0]["years"].ToString();int flag =Convert.ToInt32(dt.Rows[0]["auditflag"].ToString());if (flag == 1){cbflag.IsChecked = true;}else{cbflag.IsChecked = false;}}}public void TextIsNull(){txtdocname.Text = "";txtyears.Text = "";txtdoctype.Text = "";txtsummary.Text = "";txtauthor.Text = "";txtsource.Text = "";txtsourcetype.Text = "";txtmemo.Text = "";txttitle.Text = "";txtenglishtitle.Text = "";txtcompany.Text = "";txtkeyword.Text = "";txtcontent.Text = "";txtdigest.Text = "";txtpath.Text = "";txtdisease.Text = "";cbflag.IsChecked = false;}//审核信息(更新信息)private void btnupdate_Click(object sender, RoutedEventArgs e){int id=Convert.ToInt32( txt.Text);string docname = txtdocname.Text.ToString();string years = txtyears.Text.ToString();string doctype = txtdoctype.Text.ToString();string summary = txtsummary.Text.ToString();string author = txtauthor.Text.ToString();string source = txtsource.Text.ToString();string sourcetype = txtsourcetype.Text.ToString();string memo = txtmemo.Text.ToString();string title = txttitle.Text.ToString();string englishtitle = txtenglishtitle.Text.ToString();string authorcompany = txtcompany.Text.ToString();string keyword = txtkeyword.Text.ToString();string content = txtcontent.Text.ToString().Trim();string digest = txtdigest.Text.ToString();string path = txtpath.Text.ToString();string disease = txtdisease.Text.ToString();int auditflag;if (cbflag.IsChecked == true){auditflag = 1;}else{auditflag =0;}try{string sql = "update T_TCM_THESIS set docname='" + docname + "',years='" + years + "',doctype='" + doctype + "',summary='" + summary + "',";sql += "author='" + author + "',source='" + source + "',sourcetype='" + sourcetype + "',memo='" + memo + "',title='" + title + "',";sql += "englishtitle='" + englishtitle + "',authorcompany='" + authorcompany + "',keyword='" + keyword + "',content='" + content + "',digest='" + digest + "',";sql += "path='" + path + "',disease='" + disease + "',auditflag=" + auditflag + " where ID= "+id;int i = SQLHelper.OrlExecuteQuery(sql);if (i > 0){System.Windows.Forms.MessageBox.Show("审核通过", "审核信息");TextIsNull();this.Close();TextData td = new TextData();td.Show();}else{System.Windows.Forms.MessageBox.Show("审核失败", "审核信息");}}catch (Exception ex){System.Windows.Forms.MessageBox.Show(ex.Message);}}private void btnback_Click(object sender, RoutedEventArgs e){this.Close();if (i == 1){TextData td = new TextData();td.Show();}else {Index index = new Index();index.Show();}}}
}

View Code


【功能以及操作描述】

  1. 打开主页面可以看到,每条信息前序号的生成,通过后台对事件重写完成,代码如下。

    void MainWindow_Loaded(object sender, RoutedEventArgs e){this.c1.Children.Add(page1);this.Loaded += delegate{InitData();};dataGrid1.LoadingRow += new EventHandler<DataGridRowEventArgs>(dataGrid1_LoadingRow);}void dataGrid1_LoadingRow(object sender, DataGridRowEventArgs e){e.Row.Header = e.Row.GetIndex() + 1;    //设置行表头的内容值   }

    View Code

      

  2. 页面自动显示为分页显示,通过用户控件进行分页,然后对数据控件进行绑定,详细操作见系列二文章。本功能代码如下:

    //查询private void InitData(){string sql = "select * from T_TCM_THESIS where auditflag=1  order by ID desc";DataSet ds = MYHelper.SQLHelper.GetOrlData(sql);if (ds.Tables[0].Rows.Count > 0){page1.ShowPages(this.dataGrid1, ds, 10);}else{System.Windows.Forms.MessageBox.Show("Erroy");}}

    View Code

  3. 点击详细信息按钮,跳转的详细信息页面。如何获取DataGrid主键是关键,具体实现为:
    this.Hide();DataRowView mySelectedElement = (DataRowView)dataGrid1.SelectedItem;int ID = Convert.ToInt32((mySelectedElement.Row[0]));  //获取该行的FID  falg f = new falg(ID,0);f.Show();

  4. 在目标页面,通过页面接受页面传值,显示到详细信息。

    private void THESIS(int id){string sql = "select * from T_TCM_THESIS where id="+id;DataTable dt = MYHelper.SQLHelper.GetTabOrlData(sql);if (dt.Rows.Count>0){txtdocname.Text = dt.Rows[0]["docname"].ToString();txtauthor.Text = dt.Rows[0]["author"].ToString();txtcompany.Text = dt.Rows[0]["authorcompany"].ToString();txtcontent.Text = dt.Rows[0]["content"].ToString();txtdigest.Text = dt.Rows[0]["digest"].ToString();txtdisease.Text = dt.Rows[0]["disease"].ToString();txtdoctype.Text = dt.Rows[0]["doctype"].ToString();txtenglishtitle.Text = dt.Rows[0]["englishtitle"].ToString();txtkeyword.Text = dt.Rows[0]["keyword"].ToString();txtmemo.Text = dt.Rows[0]["memo"].ToString();txtpath.Text = dt.Rows[0]["path"].ToString();txtsource.Text = dt.Rows[0]["source"].ToString();txtsourcetype.Text = dt.Rows[0]["sourcetype"].ToString();txtsummary.Text = dt.Rows[0]["summary"].ToString();txttitle.Text = dt.Rows[0]["title"].ToString();txtyears.Text = dt.Rows[0]["years"].ToString();int flag =Convert.ToInt32(dt.Rows[0]["auditflag"].ToString());if (flag == 1){cbflag.IsChecked = true;}else{cbflag.IsChecked = false;}}}

    View Code

  5. 审核页面的具体操作也是类似, 不同之处在于对传值页面进行逻辑判断,如果是审核则允许页面信息的更新,如果查看详细信息,则更新按钮隐藏。

【篇末】:截止到此,本程序完全结束,本章涉及页面传值和数据绑定等基本信息,这方面大体与winfrom操作一致。本程序采用讲涉及的知识点数十个,均一一列出整理。数据库sql文件在项目的db文件夹中,附上完整源码如下:

注:源码地址链接总是不正确,后来打开管理--〉文件,查看源码,找到本文件的链接地址粘贴即可。

转载于:https://my.oschina.net/u/3579120/blog/1539058

【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇四:关于OneNote入库处理以及审核...相关推荐

  1. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇二:基于OneNote难点突破和批量识别...

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  2. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇二:基于OneNote难点突破和批量识别

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  3. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇一:WPF常用知识以及本项目设计总结...

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  4. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇一:WPF常用知识以及本项目设计总结

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  5. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  6. 基于Opencv的开源的中文车牌识别系统

    真正的大师,永远都怀着一颗学徒的心! 一.项目简介 基于Opencv的开源的中文车牌识别系统. 二.实现功能 车牌定位 车牌判断 车牌监测 字符分割 字符鉴别 字符识别 车牌识别 车牌抽象 训练车牌识 ...

  7. 基于tensorflow2的手写中文数字识别(自己创建数据集)

    基于tensorflow2的手写中文数字识别 @author--HCF 创建图片 首先准备手写汉字数字,并按照一定间隔整齐排列,这里是10行9列,共90个数字,如图所示 接下来使用PIL库对集中在一起 ...

  8. DL之RBM:基于RBM实现手写数字图片识别提高准确率

    DL之RBM:基于RBM实现手写数字图片识别提高准确率 目录 输出结果 设计代码 输出结果 设计代码 import numpy as np import matplotlib.pyplot as pl ...

  9. TF之LiR:基于tensorflow实现手写数字图片识别准确率

    TF之LiR:基于tensorflow实现手写数字图片识别准确率 目录 输出结果 代码设计 输出结果 Extracting MNIST_data\train-images-idx3-ubyte.gz ...

最新文章

  1. 思科生成树命令之debug spanning-tree(本文转载自:www.91ccie.coml
  2. python基础——logging、OS、sys、random、string模块(0424)
  3. C#读取Adams的Shell文件(*.shl)
  4. python自学需要哪些基础知识-零基础学Python应该学习哪些入门知识及学习步骤安排...
  5. [javaEE] response实现图片下载
  6. javascript的基础(1)
  7. 2440按键中断编程
  8. python怎么对齐文件_说说在 python 中,如何对齐文本
  9. 这个年纪,喜欢你的肉体还会送你包的,原来是......
  10. clickhouse官方文档_clickhouse分析:结合grafana和metabase完成监控和数据分析
  11. 移除inline-block间隙
  12. 【win32汇编】0x04 第一个窗口程序
  13. 59. web 攻击技术(3)
  14. c语言json数组转字符串数组,JS中json字符串和数组相互转换
  15. 自带flash的浏览器_受够了手机自带浏览器?来看看这些超实用的不常用浏览器...
  16. BAPI_EXCHANGERATE_GETDETAIL 取汇率
  17. EPICS记录参考--Waveform记录(waveform)
  18. opencv——批量修改图片像素大小
  19. 企业系JAVA宣传名片系统
  20. openal alut vs2019编译

热门文章

  1. 一个能看懂的Redis思维导图
  2. Sublime text 3 - 学习/实践
  3. 广东理工学院计算机2级,19级的你,有份通知待查看!
  4. 骁龙888plus和a14详细参数对比 骁龙888plus和a14差距
  5. 【案例1】:卖飞机票
  6. 应用案例 | 2010 款吉利美日车热机时发动机加速无力故障诊断
  7. 经典回顾《阿甘正传》之音乐篇(三)
  8. js table表格导出Excel 设置文件名称
  9. JVM BTrace
  10. Sketch 54 Shark 鲨鱼中文汉化特别版 Mac 设计师必备的原型UI设计工具