opencv3的学习
1、安装参照之前ros_indigo机器视觉
2、在opencv3中 cv2.cv被移除
cv2.cv.CV_CAP_PROP_FRAME_WIDTH
–> cv2.CAP_PROP_FRAME_WIDTH
cv2.cv.CV_CAP_PROP_FRAME_HEIGHT
–> cv2.CAP_PROP_FRAME_HEIGHT
cv2.cv.CV_FOURCC()
–> cv2.VideoWriter_fourcc
cv2.cv.CV_BGR2HSV
–> cv2.COLOR_BGR2HSV
cv2.cv.CV_HAAR_SCALE_IMAGE
–> cv2.CASCADE_SCALE_IMAGE
cv2.waitKey()
里面的数字为delay时间,如果大于0为刷新时间
超过指定时间则返回-1, 等于0没有返回值, 但也可以读取键盘数值
opencv视频抓取
1 #coding=utf-8
2
3 import cv2
4 import numpy
5 import matplotlib.pyplot as plot
6
7 # opencv3
8
9 # VideoCapture()函数定义摄像头对象,其参数0表示第一个摄像头
10 capture = cv2.VideoCapture(0)
11
12 # 将capture保存为motion-jpeg, cv_fourcc为保存格式
13 size = (int(capture.get(cv2.CAP_PROP_FRAME_WIDTH)),int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT)) )
14
15 # cv_fourcc值要设置对, 不然无法写入, 而且不报错
16 video = cv2.VideoWriter("/home/shuifu/bagfiles/Video/VideoTest.avi", cv2.VideoWriter_fourcc('I', '4', '2', '0'), 30, size)
17
18 # isopened可以查看摄像头是否开启
19 print capture.isOpened()
20
21 # 要不断读取image需要设置一个循环
22 num = 0
23 while True:
24 ret, img = capture.read()
25
26 # 视频中的图片一张张写入
27 video.write(img)
28 cv2.imshow("Video", img)
29
30 # 里面的数字为delay时间,如果大于0为刷新时间
31 key = cv2.waitKey(1)
32 # 超过指定时间则返回-1, 等于0没有返回值, 但也可以读取键盘数值
33
34 cv2.imwrite("/home/shuifu/bagfiles/image_video/%s.jpg"%(str(num)), img)
35 num = num + 1
36
37 # ord为键盘输入对应的整数
38 if key == ord("q"):
39 break
40 video.release()
41 # 如果不用release方法的话无法存储, 要等结束程序再等摄像头关了才能显示保持成功
42
43 capture.release() # 把摄像头也顺便关了
44
45 cv2.destroyAllWindows()
脸部识别,opencv自带了很多特征库有脸部,眼睛的还有很多,原理都一样
1 #coding=utf-8
2
3 import cv2
4
5 imgPath = "/home/shuifu/bagfiles/Image/005.jpg"
6 img = cv2.imread(imgPath)
7
8 def detectFaces(img, cascade):
9 # detectMultiScale函数中smallImg表示的是要检测的输入图像为smallImg,faces表示检测到的人脸目标序列
10 # 1.3表示每次图像尺寸减小的比例为1.3,
11 # 4表示每一个目标至少要被检测到3次才算是真的目标(因为周围的像素和不同的窗口大小都可以检测到人脸)
12 # CV_HAAR_SCALE_IMAGE表示不是缩放分类器来检测,而是缩放图像,Size(20, 20)为目标的最小最大尺寸
13
14 rects = cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=5, minSize=(30, 30), flags = cv2.CASCADE_SCALE_IMAGE)
15 if len(rects) == 0:
16 return []
17 rects[:, 2:] += rects[:, :2]
18 print rects
19 return rects
20
21 # 在img上绘制矩形
22 def draw_rects(img, rects, color):
23 for x1, y1, x2, y2 in rects:
24 cv2.rectangle(img, (x1, y1), (x2, y2), color, 2)
25
26 # 转换为灰度图
27 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
28
29 # 直方图均衡处理
30 gray = cv2.equalizeHist(gray)
31
32 # 脸部特征分类地址
33 cascade_fn = "/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml"
34
35 # 读取分类器,CascadeClassifier下面有一个detectMultiScale方法来得到矩形
36 cascade = cv2.CascadeClassifier(cascade_fn)
37
38 # 通过分类器得到rects
39 rects = detectFaces(gray, cascade)
40
41 # vis为img副本
42 vis = img.copy()
43
44 # 画矩形
45 draw_rects(vis, rects, (0, 255, 0))
46
47 cv2.imshow("facedetect", vis)
48 cv2.waitKey(0)
49 cv2.destroyAllWindows()
3、安装jdk-8u144-linux-x64.tar.gz
删除以前旧的
sudo apt-get purge openjdk*
下载jdk-8u144-linux-x64.tar.gz
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
tar zxvf jdk-8u144-linux-x64.tar.gz
cd /usr/lib
sudo mkdir jvm
cd ~/Downloads/
sudo cp -r ./jdk1.8.0_144 /usr/lib/jvm
sudo mv jdk1.8.0_144/ java-8u144-sun
4、配置java运行环境
vim ~/.bashrc
在底部加入一下命令
export JAVA_HOME=/usr/lib/jvm/java-8u114-sun
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source ~/.bashrc
5、下载eclipse并安装
解压tar -zxvf eclipse-XXX-linux-gtk.tar.gz
创建桌面链接
sudo vim /usr/share/applications/eclipse.desktop
[Desktop Entry]
Name=Eclipse
Comment=Eclipse SDK
Encoding=UTF-8
Exec=/usr/local/eclipse/eclipse
Icon=/usr/local/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=Application;Development;
注意,文件名千万别打错了,不能有空格,结尾不能有空格
sudo chmod u+x eclipse.desktop
sudo nautilus以管理员身份运行
6、连接java目录
cd eclipse所在目录
mkdir jre
cd jre
ln -s 你的JDK目录/bin bin
7、安装PyDev
Help菜单中,选择Install New Software···,
选择Add按钮,Name:PyDev(这个随便起),Location:http://pydev.org/updates(PyDev的更新地址),OK
配置PyDev插件
在Window菜单中选Preference,
PyDev-> Python Interpreter,New一个Python解释器,填上解释器名字和路径,路径选相应的python二进制文件
8、安装 Anaconda
下载 Anaconda https://www.continuum.io/downloads
下载Linux版本,根据Python版本选择相应的。
cd SoftWare/Anaconda/
bash Anaconda2-4.4.0-Linux-x86_64.sh
Are sure you want to continue the installation? [yes|no]
yes
In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
enter
Do you approve the license terms? [yes|no]
yes
Anaconda2 will now be installed into this location:
/home/shuifu/anaconda2
- Press ENTER to confirm the location
enter
安装完成后设置PATH的操作
# 将anaconda的bin目录加入PATH,根据版本不同,也可能是~/anaconda3/bin
echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc
# 更新bashrc以立即生效
source ~/.bashrc
设置后默认启动 ~/anaconda2/python
如果启用默认的python
将export PATH=”~/anaconda2/bin:$PATH注释掉
9、安全卸载anaconda
删除~/.bash_profile 文件中的$PATH …anaconda 那一行
删除anaconda文件夹
参考备注:
http://blog.csdn.net/u012374012/article/details/42610935
http://blog.csdn.net/u012162613/article/details/43523507
http://blog.csdn.net/u010555682/article/details/52563997
上一篇: SLAM环境配置--一键安装ROS脚本