摘要:现在比较流行的编程语言,真是不写程序很多年!突然拿来还是有点陌生的,准备学习下这个新语言,听说要入小学课本!做个实例车牌识别来练练手.......
一.安装环境可参考这边文章!很详尽了!
【Eclipse+PyDev】使用Python的IDE安装及配置详解
http://blog.csdn.net/jkwwwwwwwwww/article/details/51338230
二.对于有时需要用到openCV的!那告诉你!你走上了一条不归路!
我配置了两天才找到原因,Eclipse+python(pydev)+opencv,这里强调下pydev的版本必须要和JDK的版本配合起来!我的jdk是1.7,一开始用eclipse装的pydev最新 6.0的你会发现在eclipse菜单windows---preferences中pydev怎么也不会出现!因为支持JDK7最后一个版本的pydev是4.5.5后来又卸载了pydev6.0插件重新安装4.5.5!就好了!
一定要版本配对,一定要版本配对,一定要版本配对!!!重要的事情说三遍。
三.我们接着来,环境变量里面配置jdk让eclipse可以运行我就不说了!
其次python安装好后也是需要配置环境变量的,例如在环境变量中path里面加安装路径,强调下一定不要忘记分号,一定不要在文件夹路径后面加斜杠
C:\Program Files\python3.6.0; ------python的安装目录
C:\Program Files\python3.6.0\Scripts; ------该路径是pip运行环境必须
C:\Program Files\Java\jdk1.7.0_13\bin; ------eclipse的运行环境
四.安装到现在接着安装opencv,到官网下载最新版https://nchc.dl.sourceforge.net/project/opencvlibrary/opencv-win/2.4.13/opencv-2.4.13.5-vc14.exe
解压后到文件夹C:\tool\opencv\build\python\2.7\x64\(我机器是64位的请根据自己需要到相应文件夹下面去复制)下面复制cv2.pyd到python的安装目录C:\Program Files\python3.6.0\lib\site-packages文件夹下!Copy cv2.pyd to C:/Python27/lib/site-packages
这时候你可以使用python自带的IDLE简单测试下:import cv2
(我这里出现了错误ImportError: DLL load failed: 找不到指定的模块。)这时候通过网上各种方法也解决不了,什么重装numpy,装VS了等等!都没法解决!后来一篇文章才明白,又是版本问题opencv最新版本只支持到3.4,看完又懵逼了!赶紧重新安装,下载安装了【python-2.7.14.amd64.msi】这里我并没有卸载python3.6而是共存!在环境变量中加2组路径!而opencv也要选择相应版本,这次我选择使用了whl版本!!
官网地址对应python 2.7.14的版本opencv_python-2.4.13.5-cp27-cp27m-win_amd64.whl,通过copy到python2.7安装目录文件夹下C:\tool\Python27\Scripts,直接在cmd里面cd到该文件夹下,使用命令【pip install opencv_python-2.4.13.5-cp27-cp27m-win_amd64.whl】安装!
而后在eclipse中菜单windows---preferences---pydev---interpreters---python interpreters,再点击下Quick Auto-config,
现在你发现里面有2个interpreters(python和python1),一个是3.6版本的,一个是2.7.14版本的!(一次安装2.7的忽略这段),我们在建pydev project的时候主要选择python1就可以了!例如我新建了个pydev项目叫pydevtest,这里要注意一定要在项目上右击,属性pydev interpreters中选择对应版本和python1运行编译环境,然后选中pydev pythonpath,选中External Libraries,新建opencv的安装目录下C:\tool\opencv\build\python\2.7。到此基本配置完成!在项目下新建一个module name也叫pydevtest.py,假如简单的测试语法
import sys
import cv2
print sys.version
但是我这里一运行又出现了错误:“ImportError: numpy.core.multiarray failed to import”,提示numpy版本有问题,然后我就尝试升级,在cmd中执行pip install -U numpy,果然开始升级!大概半个小时以后升级成功!再尝试执行pydevtest.py,执行正常!运行结果【2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AMD64)]】!
大功告成!
运行环境:
Eclipse 【Eclipse Java EE IDE for Web Developers. Version: Juno Service Release 1
Build id: 20121004-1855】
Python 2.7.14
Pydev 4.5.5
Opencv opencv_python-2.4.13.5-cp27-cp27m-win_amd64
=====================
有些情况下,我们使用到绘制二维,三维数据模块工具,就要使用到from pylab模块,它是是属于matplotlib库中的!那我们就直接安装pip install matplotlib,就可以正常使用了!
======================
有时还会使用图像处理还会用到tesseract,图像转换文字!请参考这篇文章
https://www.cnblogs.com/jianqingwang/p/6978724.html
====================
放两端代码参考:
#OpenCV图像的读取,显示,保存
import cv2 #导入OpenCV库
src = cv2.imread("1.jpg") #读图片,需要和当前Python文件同一个目录
cv2.imshow("src", src) #显示
cv2.imwrite("2.jpg", src) #保存
cv2.waitKey(0) #等待按键按下
cv2.destroyAllWindows() #关闭所有打开的窗口
#OpenCV视频的读取,显示,保存
#从硬盘读
import cv2
cap = cv2.VideoCapture('1.wmv') #打开视频文件:其实就是建立一个VideoCapture结构
fps = cap.get(cv2.CAP_PROP_FPS) #获得视频的格式
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),
int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))) #获得码率及尺寸
while(cap.isOpened()): #检测是否正常打开:成功打开时,isOpened返回ture
ret, frame = cap.read() #读取下一帧
if ret == True:
cv2.imshow("video", frame) #显示
k = cv2.waitKey(int(1000/fps)) #延迟
if (k & 0xff == ord('q')): #判断是否按下按键q
break
else:
break
cap.release()
cv2.destroyAllWindows()
#从摄像头读
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(1):
ret, frame = cap.read()
cv2.imshow("video", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
错误解决:
1.【经常会有人碰到SyntaxError: Non-ASCII character '\xe8'】解决方法:
打开Eclipse,
1. Windows->Preferences->General->Editors->Text Editors->Spelling->Encoding,设置为UTF-8
2. Windows->Preferences->General->Workspace->Text file encoding,设置为UTF-8
3. Windows->Preferences->Pydev->Editors->Templates,将所有Context为New Module的Pattern都加上一句
# -*- coding: utf-8 -*-(注意,不是UTF-8,只能小写)
2.【pytesseract.pytesseract.TesseractError: (1, ‘Error opening data file \Program Files (x86)\Tesseract-OCR\tessdata/chi_sim.traineddata’) 】解决方法修改tessdata_dir_config:
===============
tessdata_dir_config = '--tessdata-dir "H:\\Program Files\\Tesseract-OCR\\tessdata"'
# It's important to include double quotes around the dir path.
text = pytesseract.image_to_string(Image.open('D:/1.JPEG'),lang='chi_sim',config=tessdata_dir_config)
===============
3.【WindowsError: [Error 2]】的解决方法:
修改为绝对路径
#tesseract_cmd = 'tesseract'
tesseract_cmd = 'H:/Program Files/Tesseract-OCR/tesseract.exe'