关于mapv读取数据库的实现及python中Tesseract-OCR的使用

1.pip安装提示PermissionError: [WinError 5]

提示信息报错的是PermissionError,确认使用登录账号为普通用户,需要使用administrator权限运行cmd(其路径如下C:\Windows\System32\cmd.exe)。

2.jsp读取数据库内容并与js完成数据共享的方法

目前在完善之前单车位置预测的项目,项目中要用到mapv技术做可视化部分,但是数据量较大需要进行读取数据库的操作。但是为了偷懒(虽然知道偷懒是不好的),这里采用了在index.jsp中用jsp直接访问数据库,然后将位置及权值信息存储在session中,数据表输出在index.jsp上。然后跳转到main.jsp页面,读取index.jsp中session中的信息,在main.jsp中将其转换为js的数组形式。在js中实现mapv的可视化。

index.jsp:

<body>
    <table bgcolor=lightgrey>
        <tr><td>Orderidtd><td>Lngtd><td>Lattd><td>Numtd>tr>
        <% 
        int i=0;
        String[] Lng = new String[300];
        String[] Lat = new String[300];
        String[] Num = new String[300];
        Class.forName("com.mysql.jdbc.Driver");
        String url ="jdbc:mysql://localhost:3306/bike?useUnicode=true&characterEncoding=UTF-8";
        Connection dbCon=DriverManager.getConnection(url,"root","123");
        Statement stmt = dbCon.createStatement( );
        ResultSet rs = stmt.executeQuery("select * from bike") ;
         while (rs.next( )&& i<300) {
            %>
          <tr bgcolor= cyan >
          <td> <%= rs.getString(1) %>td>
          <td> <%= rs.getString(2) %>td>
          <td> <%= rs.getString(3) %>td>
          <td> <%= rs.getString(4) %>td>
          tr>
          <%
          Lng[i]=rs.getString(2);
          Lat[i]=rs.getString(3);
          Num[i]=rs.getString(4);
          i++;        
          }
          rs.close( );
          stmt.close( );
          dbCon.close( );
          %>      
    table>
    <%session.setAttribute("Lng",Lng);%>
    <%session.setAttribute("Lat",Lat);%>
    <%session.setAttribute("Num",Num);%>

    <a href="main.jsp">地图展示a> 

  body>

main.jsp(由于代码过多这里只贴部分)

<%String[] Lng = (String[])session.getAttribute("Lng");
String[] Lat = (String[])session.getAttribute("Lat");
String[] Num = (String[])session.getAttribute("Num");%>

 var lng=new  Array();  
 var lat=new  Array();  
 var num=new  Array();  
 <%   
    for(int n=0;n   
        lng[<%=n%>]="<%=Lng[n]%>";  
    <%   }  %> 
    <%   
    for(int n=0;n   
        lat[<%=n%>]="<%=Lat[n]%>";  
        <%   }  %> 
        <%   
    for(int n=0;n   
        num[<%=n%>]="<%=Num[n]%>";  
        <%   }  %> 
        

            

    <% session.removeAttribute("Lng");%>
    <% session.removeAttribute("Lat");%>
    <% session.removeAttribute("Num");%>        
    

3.python实现Tesseract—OCR的中文识别环境搭建

  1. pip install pytesseract
  2. 下载Tesseract—OCR引擎,默认安装
  3. 下载chi_sim.traindata中文字库(其默认是没有中文识别包的)。下好后放到Tesseract-OCR目录下的tessdata文件夹里面
  4. 将C:/Program Files (x86)/Tesseract-OCR加入到环境变量中;
  5. 修改文件

将pytesseract包的安装目录(我是用pycharm安装的所以在我当前项目路径下面C:\Users\94452\PycharmProjects\hello_prj4\venv\Lib\site-packages\pytesseract)下找到

# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = 'tesseract'

修改为:

# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
#tesseract_cmd = 'tesseract'
tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'

否则会出现无法找到服务等错误
6. 下载jTessBoxEditor(一个用来训练字库的工具)
7. 最后进行测试

from PIL import Image
import pytesseract
text = pytesseract.image_to_string(Image.open('1.png'), lang='chi_sim')
print(text)

测试图片:
关于mapv读取数据库的实现及python中Tesseract-OCR的使用_第1张图片

结果如下:
关于mapv读取数据库的实现及python中Tesseract-OCR的使用_第2张图片

由于是第一次使用,结果也就这样了。有机会训练自己的字库再进行尝试一下

你可能感兴趣的:(机器学习实战,J2EE学习,python学习)