树莓派安装opencv
基于树莓派的人脸识别门禁系统
基于树莓派的人脸识别门禁系统一、概述随着科技的飞速发展,智能化、自动化的门禁系统已经逐渐取代传统的门禁方式,成为现代社会安全防范的重要组成部分。
本文旨在介绍一种基于树莓派的人脸识别门禁系统,该系统利用树莓派强大的计算能力和人脸识别技术的精准性,实现了门禁系统的智能化管理,提高了安全性和便利性。
树莓派作为一款功能强大的开源硬件平台,具有体积小、功耗低、易于扩展等特点,非常适合用于构建各种智能系统。
人脸识别技术则通过捕捉和分析人脸特征,实现对个体身份的快速准确识别。
将两者相结合,可以构建出一种高效、可靠的人脸识别门禁系统。
该门禁系统通过摄像头捕捉人脸图像,然后利用人脸识别算法对图像进行处理和分析,提取出人脸特征并与预设的数据库进行比对。
当识别结果匹配成功时,门禁系统自动控制门锁打开,允许人员通行;当识别失败时,则拒绝通行并发出警报。
相比传统的门禁方式,基于树莓派的人脸识别门禁系统具有以下优点:人脸识别技术具有非接触性,无需刷卡或输入密码,提高了使用的便利性;系统可以自动记录通行记录,方便后期查询和管理;系统具有较高的安全性,可以有效防止非法入侵和冒充他人身份的情况发生。
基于树莓派的人脸识别门禁系统是一种具有广阔应用前景的智能门禁解决方案,适用于各种需要严格控制人员进出的场所,如办公楼、住宅小区、学校等。
通过不断优化和完善系统功能和性能,相信这种门禁系统将在未来得到更广泛的应用和推广。
1. 介绍门禁系统的重要性及其应用场景门禁系统作为现代安全管理的重要组成部分,具有举足轻重的地位。
随着科技的不断进步和社会安全需求的日益增长,门禁系统已经不再是简单的门锁或钥匙管理,而是演变为一套集身份识别、权限管理、安全监控于一体的智能化系统。
它广泛应用于各种场景,包括但不限于企事业单位、住宅小区、学校、银行、商场等公共场所,为人们的生活和工作提供了极大的便利和安全性保障。
在企事业单位中,门禁系统能够确保只有经过授权的员工才能进入特定的办公区域,有效防止未经授权的闯入和敏感信息的泄露。
【OpenCV】解决树莓派读取4个USB摄像头数据报错问题
解决办法
前提:确保usb供电充足,我们使用了一个带有额外供电的usb hub解决供电问题。 将所有摄像头的初始化操作由
cap = cv2.VideoCapture(0)
改为
cap = cv2.VideoCapture(0) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280.0) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720.0) cap.set(cv2.CAP_PROP_FOURCC,cv2.VideoWriter_fourcc('M','J','P','G'))
我们在一个工厂智能化改造中使用了树莓派连接4个usb摄像头进行取图和分析但是在调试过程中发现总是只能读取一个摄像头数据其他摄像头都显示timeout
【 OpenCV】解决树莓派读取 4个 USB摄像头数据报错问题
背景
我们在一个工厂智能化改造中,使用了树莓派连接4个USB摄像头,进行取图和分析,但是在调试过程中,发现总是只能读取一个摄像头数 据,其他摄像头都显示timeout。
问题现象
opencv版本:4.5.5.62 cap_v4l.cpp (1000) tryIoctl VIDEOIO(V4L2:/dev/video2): select() timeout. cap_v4l.cpp (1000) tryIoctl VIDEOIO(V4L2:/dev/video4): select() timeout. cap_v4l.cpp (1000) tryIoctl VIDEOIO(V4L2:/dev/video6): select() timeout.
Ubuntu16.04树莓派Python3+opencv配置教程(分享)
Ubuntu16.04树莓派Python3+opencv配置教程(分享)⽆论是Windows、Linux、还是树莓派。
配置python3的opencv环境都是让⼈头⼤的⼀件事情,尤其是许多⼈⽤pip安装以后,发现opencv虽然装上了,但是却装在了系统原⽣的python2下。
笔者也是经历过很多次失败之后,才安装成功。
本⽂采⽤编译的⽅法配置opencv,每⼀步都有ubuntu和树莓派的分别配置,由于两个系统极其相似(可以说是基本⼀样),所以并在⼀⽂详解。
⼀般来说,只要按照步骤去安装配置,就不会出错。
废话不多说,开始表演!step1:准备⼯作1.ubuntu安装前的准备⼯作:1.1.对Ubuntu apt-get仓库进⾏更新sudo apt-get update && sudo apt-get upgrade1.2.安装必要的python插件及⼀些环境sudo apt-get install python3-setuptools python3-dev -y1.3.安装pipsudo easy_install3 pip1.4.对pip进⾏的更新(⾮必要)pip install --upgrade pip1.5.安装numpy包pip install numpy⼀些通⽤的包:1.6.安装build-essentialsudo apt-get install build-essential -y1.7.其他的⼀些开发⽤包sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -y2.树莓派更新树莓派的系统与内核2.1 sudo apt-get update2.2 sudo apt-get upgrade2.3 sudo rpi-update更新内核时可能会报“No space left on device”错误,这是因为储存空间不⾜,最好在更新前检查内存使⽤(使⽤free命令即可)step2:开始安装opencvubuntu/树莓派通⽤1、⾸先,你要找⼀个合适的地⽅存放opencv的安装包,我选择的路径是~/Download/opencv2、进⼊安装路径,并下载安装包cd ~/Download/opencvwget https:///Itseez/opencv/archive/3.0.0.zip3、下载完成后,需要创建编译后⽂件存放的路径:unzip 3.0.0.zip && cd opencv-3.0.0mkdir build && cd build4、接下来⼀步,要⼩⼼⼩⼼按照本地路径来配置,在build⽬录下执⾏如下命令:cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/localPYTHON3_EXECUTABLE=/usr/bin/python3PYTHON_INCLUDE_DIR=/usr/include/python3.4PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.4m.soPYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.4/dist-packages/numpy/core/include ..注意这⾥所有的是⼀⾏命令,每⼀个路径都要确保存在,不要忘记最后的两个点,⼤多时候树莓派和ubuntu在PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.4m.so这个路径上会有不同,在树莓派中,cd到/usr/lib/⽬录下,找到⼀个⽬录下,存在libpython3.4m.so,(⼤不了⼀个⼀个找),找到了就记住路径替换即可。
OpenCV物体跟踪树莓派视觉小车实现过程学习
OpenCV物体跟踪树莓派视觉⼩车实现过程学习⽬录物体跟踪效果展⽰⼀、初始化⼆、运动控制函数三、舵机⾓度控制四、摄像头&&图像处理1、打开摄像头2、把图像转换为灰度图3、⾼斯滤波(去噪)4、亮度增强5、转换为⼆进制6、闭运算处理7、获取轮廓代码五、获取最⼤轮廓坐标六、运动1、没有识别到轮廓(静⽌)2、向前⾛3、向左转4、向右转代码总代码物体跟踪效果展⽰过程:⼀、初始化def Motor_Init():global L_Motor, R_MotorL_Motor= GPIO.PWM(l_motor,100)R_Motor = GPIO.PWM(r_motor,100)L_Motor.start(0)R_Motor.start(0)def Direction_Init():GPIO.setup(left_back,GPIO.OUT)GPIO.setup(left_front,GPIO.OUT)GPIO.setup(l_motor,GPIO.OUT)GPIO.setup(right_front,GPIO.OUT)GPIO.setup(right_back,GPIO.OUT)GPIO.setup(r_motor,GPIO.OUT)def Servo_Init():global pwm_servopwm_servo=Adafruit_PCA9685.PCA9685()def Init():GPIO.setwarnings(False)GPIO.setmode(GPIO.BCM)Direction_Init()Servo_Init()Motor_Init()⼆、运动控制函数def Front(speed):L_Motor.ChangeDutyCycle(speed)GPIO.output(left_front,1) #left_frontGPIO.output(left_back,0) #left_backR_Motor.ChangeDutyCycle(speed)GPIO.output(right_front,1) #right_frontGPIO.output(right_back,0) #right_backdef Back(speed):L_Motor.ChangeDutyCycle(speed)GPIO.output(left_front,0) #left_frontGPIO.output(left_back,1) #left_backR_Motor.ChangeDutyCycle(speed)GPIO.output(right_front,0) #right_frontGPIO.output(right_back,1) #right_backdef Left(speed):L_Motor.ChangeDutyCycle(speed)GPIO.output(left_front,0) #left_frontGPIO.output(left_back,1) #left_backR_Motor.ChangeDutyCycle(speed)GPIO.output(right_front,1) #right_frontGPIO.output(right_back,0) #right_backdef Right(speed):L_Motor.ChangeDutyCycle(speed)GPIO.output(left_front,1) #left_frontGPIO.output(left_back,0) #left_backR_Motor.ChangeDutyCycle(speed)GPIO.output(right_front,0) #right_frontGPIO.output(right_back,1) #right_backdef Stop():L_Motor.ChangeDutyCycle(0)GPIO.output(left_front,0) #left_frontGPIO.output(left_back,0) #left_backR_Motor.ChangeDutyCycle(0)GPIO.output(right_front,0) #right_frontGPIO.output(right_back,0) #right_back三、舵机⾓度控制def set_servo_angle(channel,angle):angle=4096*((angle*11)+500)/20000pwm_servo.set_pwm_freq(50) #frequency==50Hz (servo) pwm_servo.set_pwm(channel,0,int(angle))set_servo_angle(4, 110) #top servo lengthwise#0:back 180:frontset_servo_angle(5, 90) #bottom servo crosswise#0:left 180:right上⾯的(4):是顶部的舵机(摄像头上下摆动的那个舵机)下⾯的(5):是底部的舵机(摄像头左右摆动的那个舵机)四、摄像头&&图像处理# 1 Image Processimg, contours = Image_Processing()width, height = 160, 120camera = cv2.VideoCapture(0)camera.set(3,width)camera.set(4,height)1、打开摄像头打开摄像头,并设置窗⼝⼤⼩。
树莓派安装OpenCV完整过程
树莓派安装OpenCV完整过程1. 配置并更新树莓派系统sudo raspi-config // 进⼊后打开摄像头、SSHsudo apt-get updatesudo apt-get upgradesudo rpi-update2. 安装OpenCV的相关⼯具sudo apt-get install build-essential cmake git pkg-config3. 安装OpenCV的图像⼯具包sudo apt-get install libjpeg8-devsudo apt-get install libtiff5-devsudo apt-get install libjasper-devsudo apt-get install libpng12-dev4. 安装视频I/O包sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev5.安装gtk2.0和优化函数包sudo apt-get install libgtk2.0-devsudo apt-get install libatlas-base-dev gfortran6. 下载OpenCV源码git clone https:///opencv/opencv.git7. 安装OpenCV// 根据下载的版本⽽定cd opencv-3.2.0// 创建release⽂件夹mkdir release// 进⼊release⽬录下cd release// cmake读⼊所有源⽂件之后,⾃动⽣成makefilecmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local ..// 编译sudo make// 安装sudo make install//更新动态链接库sudo ldconfig8. 解决⽆法打开摄像头硬件问题sudo nano /etc/modules// 进⼊编辑界⾯后,在末尾添加输⼊snd-bcm2835bcm2835-v4l29. 测试⽤例Python代码# -*- coding: utf-8 -*-__author__ = "kyoRan"import cv2cap = cv2.VideoCapture(0) # 打开摄像头print("VideoCapture is opened?", cap.isOpened())while(True):ret, frame = cap.read() # 读取摄像头图像center = (frame.shape[1]//2, frame.shape[0]//2) # 图像中⼼点位置gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 转灰度cv2.circle(gray, center=center, radius=100, color=(0,0,255)) # 画圆cv2.imshow("frame", gray) # 显⽰图⽚if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release() # 释放摄像头cv2.destroyAllWindows() # 关闭所有窗⼝测试结果⽰例ps:测试出现错误可能是摄像头默认未打开,需要去raspi-config使能它,enable它哦。
openVC安装
[翻译]Python 2.7 和Python 3+ 的Op enCV 3.0 安装教程字数3288阅读4356评论11喜欢4这是在PyImageSearch上Adrian Rosebrock写的一篇在安装OpenCV的教程, 感觉写的还蛮详细的, 当然文章里面的操作不只适.用老实说, 我很喜欢用. 对于全世界做的老师, 学生, 程序员来说, Raspberry Pi 可能是最好的工具, 有之一的.这是一块很便宜的开发板, 虽然便宜但不能代表它不能做很多有趣的事. 对于爱好者和车库里的黑客来说,这玩意还是超级赞的. 如果你做项目, 能够在一块很便宜又不失可靠的硬, 是不是很屌? 这玩意儿在研究学术界也是被广泛推崇和应用的.鉴于它这么低廉的价格, 我们完全可以用一批部署一个集群来做究.由于它这些牛逼的特性, 又能在各个领域一显身手, 肯定一得很大一批人的芳心. 难怪我在PyImageSearch上的这篇简明教程: installing OpenCV and Python on your Raspberry Pi 2 and B+, 能一直保持浏览数第一.估计那篇文章好景不长, 我现在这篇文章可能会勇夺桂冠, 跃居榜首.所谓后来者居上嘛.跟着我一步步来操作, ,的区别而已. 这绝逼是一个很刺激的教程, 为啥呢? Open CV ,不过对于.你肯定在PyImageSearch上的某个阴暗的角落里, ,比如: automated home surveillance and security system ,用的是Python + OpenCV + Dropbox + Raspberry Pi 2:Figure 1: 智能家居安防系统看到这些是不是内心激动难耐, 那么跟着我接着干吧.在Raspberry Pi 2 上Python 2.7+ 和Python 3+ 安装OpenCV 3.0下面会详细地介绍如何安装的哦! 不过, 我还是推荐大家用毕竟新出来的, 性能提升了不少, 用来做得很蛋疼.为了让教程简介明了, 我把具体内容大致分为了四个步骤, 大家一步步来:∙步骤一:安装依赖. 不管你是用你都需要用装安装,库等依赖.∙步骤二:编译如果你准备用要做的, 做完之后呢, 你就可以跳过步骤三, 直奔步骤四.∙步骤三:编译同样地, 你准备用, 步骤二是不用做的, 直接从步骤一来到这里.∙步骤四:确认安装成功. 在你安装完成之后, 这一步骤就来确认, 能不能正常地工作.Python 2.7+ 还是Python 3+?在开始正式安装之前, 你需要搞清楚你到底是要安装哪一个版本的.反正两个版本各有利弊吧. 你自己选择一个你看着顺眼的, 这个真没有什么特别的不同. 如果你觉得用着, 你就选择,. 但是如果你平时用, 譬如或者你可能会更倾向于选择至少目前是这样的情况. 这些方面的大部分库和包都是, 譬如: NumPy,Scipy和scikit-learn, 虽然社区里面都在努力地向, 但是有那么一部分还是只能在 .步骤一: 安装包依赖下面我们就开始.耗时:9m 5s下面我们安装从源码构建:耗时: 43s加载不同格式图片的工具包:耗时: 27s视频流I/O 包耗时: 26sGTK, 给图形界面操作用的耗时: 2m 20s安装下面的包可以在耗时: 46s现在, 我们的准备工作完成了. 接下来我们从, 然后切换到新的版本耗时: 8m 34s要完整地安装, 最好把opencv_contrib也拉下来耗时:1m 7s啊, 不对, 又错了, 是某种.继续步骤二, 你会得到, 直接跳到步骤三就是.随便你自己怎么选, 不过你得考虑清楚, 请谨慎选择, 没有机会给你反悔的哦.步骤二: 在Python 2.7+ 下编译Open CV安装编译所需要的头文件, 也就是Python 的开发包啦耗时: 1m 20s安装耗时: 33s, 我们利用virtualenv和virtualenvwrapper来给我们不同的.不过现在安装和virtualenvwrapper不是必须要安装的.然而,, 我推荐你们去安装使用, 后面我会假设你们都已经安装使用它了.用耗时: 17s接下来, 我们需要设置环境变量, 随便用一个你们自己喜欢的编辑器,如果不存在就新建一个, 然后把下面的几行添加到文件末尾, 下一步就是要来加载它. 你需要重新打开一个终端, 或者简单地使用现在我们要开创建一个做随便命名) 了耗时: 19s如果你在之后需要访问你的虚拟环境, 特别是你登出或者重启你的机器之后, 你可能需要,容, , 做一个全局设置, 并不推荐这么做.) 然后用.之后你的.继续, 我们其实只依赖一个请确保在你的虚拟环境耗时: 13m 17s在我们用了,删掉, 然后重新安装哈哈, 完成啦, 你现在应该在你的虚拟环境.试试和我下面是不是一样的.Figure 2: 完成numpy的安装注意:这些操作可能会非常的耗时间, 可能在完成一项安装之后, 关机或这登出了, 在你下次继续的时候一定记得要切换至你的虚拟环境, 不然你的继续安装和你之前的操作不是在同一个环境下,或导致你后面的操作出现错误.我在说一句, 在你继续下一个命令前, 千万千万要确保你是在你的虚拟环境下, 我的本例子中是现在你可以用CMake大概会花30s, 在它完成之后, 当然你得保证它没有报错, 你要检查下1输出的内容,特别是.这里我们国内用户很可能会报错, 原因是ippicv linux这个包下载速度很慢, 导致下载未完成连接超时.解决的办法是手动去下载这个文件: ippicv linux .Figure 3: CMake正常输出这里的关键点就是要确保, CMake已经正确地关联其次, 要注意下, 这个文件夹是存放.从那我们可以看到我们的下面我们就可以正式地编译耗时: 65m 33s编译没有错误, 现在就可以安装了现在, 下面只需要搞清楚它在哪.还记得上面我提到的?看下这个文件夹,Figure 4: Open CV 3.0 已经成功地安装.的虚拟环境完啦, 你现在已经把, 到步骤四去, 检查一下是不是安装正确.步骤三: 在Python 3+ 下编译Open CV待续...步骤四: 确认Open CV 3.0 安装成功在我们结束教程之前, 你最好还是检查一下是不是安装正确了. 打开一个终端, 进入你的虚拟环境, 进去导入新建文件test.py, 输入一下内容就OK 啦!Figure 5: 输出成功总结这篇文章中, . 我安装时每一个步骤话的时间也给出以便大家参考.只要记住一点, 就是在你重启或者重登陆到机器中时, 你得先用.一开始, 发现这篇文章挺使用的,也还蛮简单, 就想着话点时间翻译下, 以便查阅. 文章看着很长其实废话很多, 有用的也就那些代码段, 如果大家只是为了快速安装,直接复制代码就好了. 不过, 老外的教程都是这样, 讲的很细, 有些重点还不止一遍两遍的提醒.这足以见得他们做事蛮认真负责的. 这文章简直太详细了, 到目前已经花了将近5个小时了, 所以我把第三步骤暂时跳过了, 等后面有时间再补上.。
基于嵌入式树莓派和OpenCV的运动检测与跟踪系统
基于嵌入式树莓派和OpenCV的运动检测与跟踪系统一、本文概述随着科技的不断进步,嵌入式系统和计算机视觉技术在日常生活、工业生产、安全防护等领域中的应用日益广泛。
其中,基于嵌入式树莓派和OpenCV的运动检测与跟踪系统因其高效、灵活、成本效益高等特点,受到了广大研究者和实践者的青睐。
本文旨在探讨如何利用树莓派这一强大的微型计算机和OpenCV这一开源的计算机视觉库,实现运动目标的检测与跟踪,并为此提供一个完整的系统设计、实现与测试方案。
本文首先将对嵌入式树莓派和OpenCV进行简要介绍,阐述它们在运动检测与跟踪领域的应用优势和潜力。
接着,将详细介绍系统的硬件组成和软件架构,包括树莓派的选型、摄像头模块的选择、OpenCV 的安装与配置等。
在此基础上,本文将重点讨论运动检测与跟踪算法的选择和实现,包括背景建模、目标提取、目标跟踪等关键技术。
本文还将探讨如何优化系统性能,提高检测与跟踪的准确性和实时性。
这包括算法的优化、硬件资源的合理利用、系统功耗的控制等方面。
本文将通过实际测试案例,验证所设计系统的可行性和有效性,为相关研究和应用提供参考和借鉴。
通过本文的阅读,读者可以全面了解基于嵌入式树莓派和OpenCV 的运动检测与跟踪系统的原理、设计、实现和优化过程,为相关领域的研究和实践提供有益的启示和帮助。
二、系统总体设计基于嵌入式树莓派和OpenCV的运动检测与跟踪系统,主要由硬件层、操作系统层、算法层和应用层四个层次构成。
硬件层以树莓派为核心,辅以摄像头、存储设备等;操作系统层选用基于Linux的树莓派操作系统,提供稳定、高效的运行环境;算法层利用OpenCV库实现运动检测与跟踪的核心算法;应用层则负责与用户交互,展示检测结果并提供控制接口。
树莓派作为本系统的核心硬件,选用具备足够计算能力和IO接口的型号,如Raspberry Pi 4。
摄像头选择高清、低延迟的网络摄像头,以便捕捉清晰、流畅的视频流。
树莓pico win编译
树莓pico win编译
1. 安装软件:安装Clion、gcc-arm-none-eabi、pico-example、pico-sdk和cmake等软件。
2. 配置环境:将安装的软件路径添加到系统环境变量中,并将pico-sdk文件夹添加到环境变量中。
3. 打开Clion:打开Clion,在文件夹中找到pico-examples文件夹。
4. 编译项目:在pico-examples文件夹下,创建一个新文件夹build,并在该文件夹下进入命令行。
在命令行中输入cmake -G"MinGW Makefiles"..,然后按Enter键。
5. 生成Makefile文件:完成上述步骤后,系统将自动生成Makefile文件。
6. 编译项目:在命令行中输入cmake --build .命令,按Enter键后,Clion会自动开始编译项目,生成uf2文件。
7. 测试程序:将生成的uf2文件通过树莓派Pico的烧录器烧录到设备上,然后在设备上测试程序是否正常工作。
需要注意的是,树莓派Pico的Win编译需要先安装好相关软件,并按照以上步骤进行操作。
opencv安装指南
说明:操作系统ubuntu 12.04 desktop LTS1.前期准备采用OpenCV2.3.1(2.4也适合)。
官方下载地址/projects/opencvlibrary/files/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2/download安装cmakesudo apt-get install cmakeCMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。
他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
OpenCV使用cmake进行makefile的创建。
安装qtcreatorsudo apt-get install qtcreator2.安装将OpenCV包解压到用户目录下,得到opencv文件夹cd ~/opencvmkdir releasecd releasecmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..(注意“..”前有空格)make等待大概十分钟make完成sudo make install至此opencv库安装到了/usr/local/lib目录下,重启电脑,或者执行sudo ldconfig(关于ldconfig:ubuntu把在开机时所有库文件装入到缓存,这样避免每次使用链接库都需装载,提高系统的效率,ldconfig命令就是重新装载,可通过ldconfig -v查看已经在缓存里的库。
)3.QT4+OpenCV组合配置示例下面就可以使用QT和OpenCV进行开发了。
打开QTcreator新建项目,添加头文件,源文件及其代码(如下,示例项目在附件里也有)//////////////////////opencv_example.h#ifndef OPENCV_EXAMPLE_H#define OPENCV_EXAMPLE_H#include<QtGui/QMainWindow>#include<QtGui>#include"cv.h"#include"highgui.h"class OpenCV_Example:public QMainWindow{Q_OBJECTpublic:OpenCV_Example();QPushButton*b1;IplImage*img;public slots:void slot_imgshow();};#endif//OPENCV_EXAMPLE_H///////////////////////////////opencv_example.cpp#include"opencv_example.h"OpenCV_Example::OpenCV_Example(){setGeometry(100,100,100,100);b1=new QPushButton("Show Image",this);connect(b1,SIGNAL(clicked()),this,SLOT(slot_imgshow()));}void OpenCV_Example::slot_imgshow(){QMessageBox::information(this,"title","Hello this is popup");img=cvLoadImage("/home/guo/OpenCV_Example/OpenCV_Example/21.jpg",1);//要打开的图片//create a new windowcvNamedWindow("Window",1);//display the image in the windowcvShowImage("Window",img);//wait for key to close the windowcvWaitKey(0);cvDestroyWindow("Window");//destroy the window }在main中编写:#include<QtGui/QApplication>#include"opencv_example.h"int main(int argc,char*argv[]){QApplication a(argc,argv);OpenCV_Example w;w.show();return a.exec();}在.pro文件中添加编译/链接选项INCLUDEPATH+=/usr/local/includeINCLUDEPATH+=/usr/local/include/opencvLIBS+=/usr/local/lib/libopencv_core.soLIBS+=/usr/local/lib/libopencv_highgui.soLIBS+=/usr/local/lib/libopencv_imgproc.so然后构建运行。
基于树莓派的人脸识别门禁系统
基于树莓派的人脸识别门禁系统基于树莓派的人脸识别门禁系统摘要:本文提出了一种基于树莓派的人脸识别门禁系统。
该系统通过使用人脸识别云服务可以实时对人员进行辨认。
本文详细描述了该系统的搭建和实现过程,为相关产品提供了一套很好的解决方案。
对所设计的系统进行了模拟测试,其测试结果达到了设计目标。
关键词:树莓派、人脸识别、云服务、Python第1章绪论1.1 研究背景随着人工智能和物联网技术的发展,人脸识别技术已经被广泛应用于门禁系统、考勤系统、安防系统等领域。
然而,传统的门禁系统存在着一些问题,如易被冒用、易被破解等。
因此,如何提高门禁系统的安全性和准确性成为了研究的重点。
1.2 人脸识别的研究目的和意义人脸识别技术是一种生物特征识别技术,具有不可复制性、不可变性、普遍性等特点。
因此,人脸识别技术在门禁系统中具有广泛的应用前景。
通过使用人脸识别技术,可以提高门禁系统的安全性和准确性,避免传统门禁系统易被冒用、易被破解等问题。
1.3 人脸识别系统的国内外研究现状目前,国内外已经有很多研究团队对人脸识别技术进行了深入的研究。
国内外的研究成果表明,人脸识别技术已经得到了广泛的应用。
在门禁系统中,人脸识别技术已经成为了一种主流的技术。
1.4 本设计主要研究内容本设计主要研究基于树莓派的人脸识别门禁系统。
该系统通过使用人脸识别云服务可以实时对人员进行辨认。
本文详细描述了该系统的搭建和实现过程,为相关产品提供了一套很好的解决方案。
第2章树莓派人脸识别门禁系统的总体设计本章主要介绍基于树莓派的人脸识别门禁系统的总体设计。
该系统主要由硬件部分和软件部分组成。
硬件部分包括树莓派、摄像头、显示器等设备;软件部分包括人脸识别算法、云服务接口、Python编程语言等。
通过对硬件和软件的组合,实现了基于树莓派的人脸识别门禁系统的设计。
2.1 人脸识别门禁系统方案人脸识别门禁系统是一种新型的门禁系统,它可以通过人脸识别技术来识别用户身份,从而实现门禁控制。
树莓派极简安装OpenCv的方法步骤
树莓派极简安装OpenCv的⽅法步骤因为最近在开发使⽤树莓派+usb摄像头识别模块,打算⽤OpenCv,发现⽹上的树莓派OpenCv安装教程都过于繁琐占⽤内存⼤,我经过⾃⼰的实验,发现出了⼀种⾮常简易快捷的⽅式,⽹速OK的话,⼗分钟能安装完成。
我⽤的环境:树莓派3b+Python3.5.4树莓派官⽅操作系统以下是安装步骤:树莓派相关库安装:sudo apt-get updatesudo apt-get install libjpeg-devsudo apt-get install libatlas-base-devsudo apt-get install libjpeg-devsudo apt-get install libtiff5-devsudo apt-get install li.jpg12-devsudo apt-get install libqtgui4 libqt4-testsudo apt-get install libjasper-devOpenCV模块pip安装sudo pip3 install opencv-python安装完成测试在终端输⼊:python3然后:import cv2如果安装成功,则import不会有问题下⾯就可以输出OpenCv的版本号使⽤:print(cv2.version)退出python⽤: exit()简单应⽤使⽤OpenCv库读取usb摄像头,实时显⽰,拍照代码如下:import cv2import numpy as npcap = cv2.VideoCapture(0)while(1):# get a frameret, frame = cap.read()# show a framecv2.imshow("capture", frame)if cv2.waitKey(1) & 0xFF == ord('q'):#退出并拍照cv2.imwrite("takephoto2.jpg", frame)print("take Photo Ok")breakcap.release()cv2.destroyAllWindows()运⾏截图以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
最简单的的树莓派安装opencv教程(一键安装)
最简单的的树莓派安装opencv教程(一键安装)
opencv是一个我们在做计算机视觉,图像处理方面经常会用到的库,但是现在给树莓派安装opencv的教程都普遍比较麻烦,不是要重刷系统镜像就是要花费很长时间编译安装,还要安装各种依赖。
所以为了让大家可以更简单的完成opencv的安装,我们把opencv库做成了一键安装模式,让大家用一条命令就可以完全安装,不需要考虑其他的依赖和配置文件的改写,真正的做到一键安装,我们实测在树莓派爱好者基地64位系统2.0版本使用是没有任何问题的,树莓派官方系统大家可以自行测试。
本次安装的opencv版本是4.5.1版本。
1、下载opencv包。
树莓派上使用OpenCV和Python实现实时人脸检测
树莓派上使用OpenCV和Python实现实时人脸检测本文介绍了如何在树莓派上,使用 OpenCV 和 Python 完成人脸检测项目。
该项目不仅描述了识别人脸所需要的具体步骤,同时还提供了很多扩展知识。
此外,该项目并不需要读者了解详细的人脸识别理论知识,因此初学者也能轻松跟着步骤实现。
项目所需设备硬件:树莓派 3 Model B;树莓派摄像头模块(PiCam)。
语言和库:OpenCVPython 3步骤本文主要讲述如何使用 PiCam 实现实时人脸识别,如下图所示:本教程使用 OpenCV 完成,一个神奇的「开源计算机视觉库」,并主要关注树莓派(因此,操作系统是树莓派系统)和 Python,但是我也在 Mac 电脑上测试了代码,同样运行很好。
OpenCV 具备很强的计算效率,且专门用于实时应用。
因此,它非常适合使用摄像头的实时人脸识别。
要创建完整的人脸识别项目,我们必须完成3个阶段:1)人脸检测和数据收集;2)训练识别器;3)人脸识别。
如下图所示:第1步:材料清单主件:树莓派 V3:283 RMB(淘宝)500 万像素1080p 传感器OV5647 迷你摄像头模块:83 RMB (淘宝)第2步:安装OpenCV 3包我使用的是更新了最新版树莓派系统(Stretch)的树莓派V3,因此安装 OpenCV 的最佳方式是按照 Adrian Rosebrock 写的教程来进行:《Raspbian Stretch: Install OpenCV 3 + Python on your Raspberry Pi》。
经过几次尝试后,我觉得Adrian的教程最好,建议按照该教程一步步来安装。
完成上述教程之后,你应该安装好了 OpenCV 虚拟环境,可用于在树莓派设备上运行本次实验。
我们来到虚拟环境,确认 OpenCV 3 已经正确安装。
Adrian 推荐在每次打开新的终端时都运行命令行「source」,以确保系统变量都得到正确设置。
Ubuntu17.04系统下源码编译安装opencv的步骤详解
Ubuntu17.04系统下源码编译安装opencv的步骤详解前⾔本⽂主要针对Ubuntu 17.04版本下,opencv进⾏源码编译安装。
开发环境主要针对python 对 openCV库的调⽤。
下⾯话不多说了,来⼀起看看详细的介绍:⼀、安装 gcc cmake 编译环境sudo apt-get install build-essential pkg-config cmake cmake-gui本⽂提供两种源码编译⽅式,⼀种是cmake命令,另⼀种是通过图形界⾯的cmake-gui进⾏编译该版本系统ubuntu已经⾃带python 2.7 和 python 3.5 ,需安装 pip 对python包进⾏管理sudo apt-get install python-pipsudo apt-get install python3-pip配置pip 清华源加速包下载更新速度(寻找飞⼀样的感觉)mkdir ~/.pipvim ~/.pip/pip.conf# 在pip.conf 中添加以下内容[global]index-url = https:///simple[install]trusted-host=⼆、安装python 以及 python3 下的数据分析包pip install numpy scipy matplotlib scikit-image scikit-learnpip3 install numpy scipy matplotlib scikit-image scikit-learn三、安装其他依赖# git : 版本控制# gfortran fortran编译器# yasm 汇编编译器# ffmpeg 系统⾃带sudo apt-get install checkinstall yasm gfortran git ffmpegsudo apt-get install libxvidcore4 libgtk-3-devsudo apt-get install libjpeg8-dev libjasper-devsudo apt-get install libtiff5-devsudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-devsudo apt-get install libxine2-dev libv4l-devsudo apt-get install libqt4-dev libgtk2.0-dev libtbb-devsudo apt-get install libatlas-base-devsudo apt-get install libfaac-dev libmp3lame-dev libtheora-devsudo apt-get install libvorbis-dev libxvidcore-devsudo apt-get install libopencore-amrnb-dev libopencore-amrwb-devsudo apt-get install x264 v4l-utils四、可选依赖sudo apt-get install libprotobuf-dev protobuf-compilersudo apt-get install libgoogle-glog-dev libgflags-devsudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen五、下载并且安装OpenCV3安装gitsudo apt-get install git下载OpenCV3git clone https:///opencv/opencv.git下载OpenCV_Contribgit clone https:///opencv/opencv_contrib.gitOpenCV 从 3.0 开始,就将⼀部分内容(⽐如 SIFT 等)分离到 opencv_contrib 中。
基于树莓派的人工智能
2)下载安装TENSORFLOW
方法二: # For Python 2.7 把tensorflow……..armv7l.whl 随便放在一个地方,然后安装 sudo pip install tensorflow-1.1.0-cp27-none-linux_armv7l.whl
TENSORFLOW V1.1.0 MODEL安装
./LCD4-800x480-show (show后加0、90、180、270,代表方向)
触摸屏幕校准
附件: xinput-calibrator_0.7.5-1_armhf.zip 解压并把xinput-calibrator_0.7.5-1_armhf.deb复制到树莓派的 raspbian系统中。 运行以下命令,进行安装: sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb 点击任务栏的Menu键,选择Preferences -> Calibrate Touchscreen。
重启sudo service xrdp restart
SSH
ROOT权限
默认用户是pi 密码为raspberry 重新开启root账号,可由pi用户登录后,在命令行下执行
sudo passwd root
执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可,然 后在执行 sudo passwd --unlock root 这样就可以解锁root账户了 登陆:su root 现出密码输入,输入密码则登陆root
1.0版本以后models就被独立出来了,不在放在一个压缩包里了。 1.在线下载 进入:/usr/local/lib/python2.7/dist-packages/tensorflow 命令:sudo git clone --recurse-submodules https:///tensorflow/models
树莓派CSI摄像头实现rtsp流的传输,笔记本使用Python调用Opencv显示
树莓派CSI摄像头实现rtsp流的传输,笔记本使⽤Python调⽤Opencv显⽰闲的⽆聊突然想做树莓派⼩车,构想是主机端python程序可以实时看到树莓派摄像头图像,并可以控制⼩车⽅向移动等功能。
主机端使⽤opencv调⽤树莓派摄像头,代码差不多这个样⼦import cv2import tkinter as tkfrom tkinter import *from PIL import Image, ImageTk#图像控件url = "rtsp://192.168.0.117:9554/webcam" #关键点在这个地⽅,树莓派通过rtsp传输cap = cv2.VideoCapture(url)#创建摄像头对象#界⾯画布更新图像def tkImage():ref,frame=cap.read()frame = cv2.flip(frame, 1) #摄像头翻转cvimage = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)pilImage=Image.fromarray(cvimage)pilImage = pilImage.resize((image_width, image_height),Image.ANTIALIAS)tkImage = ImageTk.PhotoImage(image=pilImage)return tkImagetop = ()top.title('CAR')top.geometry('900x600')image_width = 600image_height = 500canvas = Canvas(top,bg = 'white',width = image_width,height = image_height )#绘制画布Label(top,text = '摄像头视频',font = ("⿊体",14),width =15,height = 1).place(x =400,y = 20,anchor = 'nw')canvas.place(x = 150,y = 50)while True:pic = tkImage()canvas.create_image(0,0,anchor = 'nw',image = pic)top.update()top.after(100)cap.release()top.mainloop()本⽂关键就是哪个url如何得到!————————————————分割线————————————————正⽂开始声明主要参考⽂献:本⽂整合多篇参考⽂献,因为以前教程都是n年前的,本⼈站在先辈肩膀上,实现此功能。
树莓派pip安装opencv报错,Couldnotfindaversionthatsati。。。
树莓派pip安装opencv报错,Couldnotfindaversionthatsati。
前⾔我在使⽤pip install opencv-python 时报错Could not find a version that satisfies the requirement opencv (from versions: ) No matching distribution found for opencv树莓派的镜像是默认装的镜像,没怎么装过其他东西的。
我查看了python的版本,python是2.7版本的,树莓派镜像默认是装好了python2。
分析原因,python2版本过久,⽆法找到满⾜opencv需求的版本。
然后我将python3后安装,发现opencv安装成功。
具体操作1.执⾏ sudo apt-get install python3 命令安装python3sudo apt-get install python32.执⾏ python3 -V 查看 python3是否安装成功python3 -V3.执⾏ pip3 install opencv-pythonpip3 install opencv-python安装好后如图4.执⾏ pip3 list 验证 pip3中是否安装了opencv-pythonpip3 list(检验pip3中是安装了opencv-python)5.进⼊python3 执⾏ import cv2 as cv 查看opencv-python 是否成功安装进python3python3import cv2 as cv(查看opencv-python 是否成功安装进python3)此时出现了个坑,报错:ImportError:libcblas.so.3:cannot open shared object file:No such file or directory这个报错的意思是没有安装libcblas的库,此时安装Blas 的依赖项就解决了。
树莓派3B+的摄像头简单使用(video-streamer)
树莓派3B+的摄像头简单使⽤(video-streamer)⼀、⾸先在某东上购买树莓派摄像头我的买的硬件张这个样⼦的(CSI接⼝摄像头):正视图后视图当然我买的不是正版的,价格在50多块钱吧。
所以也不算很贵,买回来看看,电路也不算特别的复杂,⾃⼰做的话应该也是没有问题的~(注意买回来的摄像头前⾯都是有⼀个⼩的透明薄膜的,但是很影响摄像头的成像效果,⽤的时候撕掉它,不⽤的时候可以去掉。
)全称前端-配置逻辑接⼝以便⽀持⼤多数通⽤的可⽤的CMOS摄像头接⼝。
⽀持CCIR656视频接⼝以及传统的摄像头接⼝。
8位数据⼝,⽀持⽅便YCC,YUV,Bayer或者是RGB的数据格式输⼊。
完全可控的8-bit或16-bit数据到32-bit的FIFO进⾏打包32*32⼤⼩的FIFO存储接受到的的图像像素数据,该FIFO可以通过可编程的IO或者是DMA进⾏读取.后端-提供了直接到eMMA的预处理PrP块接⼝(PrP和PP组成了MX27图形加速器eMMA,PrP和PP能够⽤来给视频做预处理和后期处理,例如,放⼤,缩⼩,颜⾊转换)提供sensor的可屏蔽中断源,该中断源也是中断可控的:开始Frame,结束Frame,Change of Field,FIFO Full提供给外部sensor⽤的,可配置的主时钟频率由统计数据产⽣的⾃动曝光(AE)和⾃动⽩平衡(AWB)控制。
⼆、接下来开始安装驱动使能树莓派的相关模块:⾸先使⽤ ls指令来查看是否加载到了对应的video device设备:ls -al /etc所以没有发现我们的设备,接下来要做的是添加摄像头的驱动程序.ko⽂件和对应的raspiberry B3+的硬件使能问题:1、添加驱动程序⽂件进来:sudo vim /etc/modules在最后添加如下的代码:bcm2835-v4l2这样就完成了在启动过程中加载camera驱动的前提,注意⼀个问题就是/etc/modules⽂件的修改权限是super admin所以,记得使⽤sudo vim /etc/modules.2、修改Raspberry的启动配置使能项:sudo raspi-config得到如下的配置界⾯:选择Interfacing Option,选中Select然后Enter进⼊,如下图所⽰:接下来机会问你是否同意使能Pi camera,选择是然后会让你重启,,重启就好了:选择 “是”3、重启完之后,我们的基本的操作就完成了,下来来看看/dev下⾯是否存在摄像头设备的问题:ls -al /dev/ | grep video好得,没问题了,找到了我们想要的看到的设备:video0 device注:可能提⽰这样的问题(如果在以上⼯作都完成的情况下,摄像头还是不能正常的使⽤或者驱动,请先检查硬件的连接的问题,可能是排线没有很好的插稳,或者是摄像头本⾝的问题。
树莓派小车物体追踪
树莓派小车物体追踪:在开发树莓派智能小车的路上已经走了半年多时间了,起初做了以下简单的远程控制和避障功能,后来慢慢加入黑线循迹以及语音识别,物体识别的功能。
前段时间在刷新闻头条的时候,偶然看到一外国大牛做的树莓派目标追踪平衡车。
所以开始琢磨着让我自己的小车也加上物体追踪的功能。
在几天的资料整理之后发现是利用opencv和python实现的。
那么今天告诉大家如何安装opencv3.0和如何利用它实现我的小车避障。
之前确实安装过几次opencv都倒在了cmake编译的路上,但有问题就得解决。
翻了好几个帖子终于找到了一个靠谱的。
用了一个下午的时间终于安装成功了。
安装的教程讲已经在群文件分享给大家。
然后问题来了,opencv安装好了,怎么实现物体追踪呢。
我开始在github上找案列,找啊找啊找,输入关键字track car raspberry,找到一个,打开看看是树莓派加arduino做的。
还好arduino只是用来控制步进电机的。
我开始把树莓派gpio控制电机的部分移植到这个项目中。
在一天的调试之后,改造版的树莓派物体追踪小车出炉了。
怎么说呢,这只是个雏形,因为小车转向不够灵敏,追踪的功能需要进一步优化。
个人水平有限,希望大家一起来研究。
来说说detect.py 小车物体追踪的源码。
detect.py中物体追踪是怎么实现的呢,首先它需要捕捉一个frame边框并确定一个物体去追踪。
在确定了所要追踪的物体之后,小车将保持对物体的追踪。
源码中定义了前后左右和停止的动作。
当被锁定的物体移动时,小车则根据物体的位置作出响应即追踪物体前进。
附detect.py源码:# import the necessary packagesfrom picamera.array import PiRGBArray from picamera import PiCamera import cv2import serialimport syslogimport timeimport numpy as npimport RPi.GPIO as GPIO# define capturing sizewidth = 320height = 240tracking_width = 40tracking_height = 40auto_mode = 0def t_stop():GPIO.output(11, False)GPIO.output(12, False)GPIO.output(15, False)GPIO.output(16, False)def t_up():GPIO.output(11, True)GPIO.output(15, True)GPIO.output(16, False)time.sleep(0.05)GPIO.output(11, False)GPIO.output(12, False)GPIO.output(15, False)GPIO.output(16, False)time.sleep(0.3)def t_down():GPIO.output(11, False)GPIO.output(12, True)GPIO.output(15, False)GPIO.output(16, True)def t_left():GPIO.output(11, False)GPIO.output(12, True)GPIO.output(15, True)GPIO.output(16, False)time.sleep(0.05)GPIO.output(12, False)GPIO.output(15, False)GPIO.output(16, False)time.sleep(0.3)def t_right():GPIO.output(11, True)GPIO.output(12, False)GPIO.output(15, False)GPIO.output(16, True)time.sleep(0.05)GPIO.output(11, False)GPIO.output(12, False)GPIO.output(15, False)GPIO.output(16, False)time.sleep(0.3)def t_open():GPIO.setup(22,GPIO.OUT)GPIO.output(22,GPIO.LOW) def t_close():GPIO.setup(22,GPIO.IN)def check_for_direction(position_x):GPIO.setmode(GPIO.BOARD)GPIO.setwarnings(False)GPIO.setup(11,GPIO.OUT)GPIO.setup(12,GPIO.OUT)GPIO.setup(15,GPIO.OUT)GPIO.setup(16,GPIO.OUT)GPIO.setup(38,GPIO.OUT)if position_x == 0 or position_x == width:print 'out of bound't_stop()if position_x <= ((width-tracking_width)/2 - tracking_width): print 'move right!'t_right()elif position_x >= ((width-tracking_width)/2 + tracking_width): print 'move left!'t_left()else:# print 'move front't_up()# initialize the camera and grab a reference to the raw camera capture camera = PiCamera()camera.resolution = (width, height)camera.framerate = 32rawCapture = PiRGBArray(camera, size=(width, height))rawCapture2 = PiRGBArray(camera, size=(width, height))# allow the camera to warmuptime.sleep(0.1)# set the ROI (Region of Interest)c,r,w,h = (width/2 - tracking_width/2), (height/2 - tracking_height/2), tracking_width, tracking_heighttrack_window = (c,r,w,h)# capture single frame of tracking imagecamera.capture(rawCapture2, format='bgr')# create mask and normalized histogramroi = rawCapture2.array[r:r+h, c:c+w]hsv_roi = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)mask = cv2.inRange(hsv_roi, np.array([0,30,32]), np.array([180,255,255]))roi_hist = cv2.calcHist([hsv_roi], [0], mask, [180], [0,180])cv2.normalize(roi_hist, roi_hist, 0, 255, cv2.NORM_MINMAX)term_crit = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 80, 1)# capture frames from the camerafor frame in camera.capture_continuous(rawCapture, format='bgr', use_video_port=True):# grab the raw NumPy array representing the image, then initialize the timestamp# and occupied/unoccupied textimage = frame.array# filtering for tracking algorithmhsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)dst = cv2.calcBackProject([hsv], [0], roi_hist, [0,180], 1)ret, track_window = cv2.meanShift(dst, track_window, term_crit)x,y,w,h = track_windowcv2.rectangle(image, (x,y), (x+w,y+h), 255, 2)cv2.putText(image, 'Tracked', (x-25, y-10), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)# show the framecv2.imshow("Raspberry Pi RC Car", image)key = cv2.waitKey(1) & 0xFFcheck_for_direction(x)time.sleep(0.01)# clear the stream in preparation for the next frame rawCapture.truncate(0)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
树莓派学习笔记——apt方式安装opencv
0.前言
本文介绍如何在树莓派中通过apt方式安装opencv,并通过一个简单的例子说明如何使用opencv。
相比于源代码方式安装opencv,通过apt方式安装过程步骤简单些,消耗的时间也少一些。
通过apt方式安装没有自动生成opencv.pc文件,所以在编写makefile文件时不能直接使用pkg-config工具,而需要逐个指定opencv_core、opencv_imgproc 等动态链接库。
【相关博文】
【树莓派学习笔记——源代码方式安装opencv】
更多内容请参考——【树莓派学习笔记——索引博文】
1.安装opencv
开始之前进行必要的更新工作。
sudo apt-get update
安装opencv。
sudo apt-get install libcv-dev
安装过程比较缓慢,请耐心等待。
安装完成之后,opencv相关的头文件被安装到/usr/lib目录中,该目录是linux默认头文件查找路径。
opencv的相关动态链接库被安装到/usr/lib目录中。
这些动态链接库包括:
【opencv_calib3d】——相机校准和三维重建
【opencv_core】——核心模块,绘图和其他辅助功能
【opencv_features2d】——二维特征检测
【opencv_flann】——快速最邻近搜索
【opencv_highgui】——GUI用户界面
【opencv_imgproc】——图像处理
【opencv_legacy】——废弃部分
【opencv_ml】——机器学习模块
【opencv_objdetect】——目标检测模块
【opencv_ocl】——运用OpenCL加速的计算机视觉组件模块【opencv_video】——视频分析组件
2.简单示例
【C++】——通过代码载入一张图片,通过opencv把彩色图片转换为黑白图片,并把原图和转换后的图片输出到屏幕中。
[cpp]view plaincopy
1.#include <opencv2/core/core.hpp>
2.#include <opencv2/imgproc/imgproc.hpp>
3.#include <opencv2/highgui/highgui.hpp>
4.#include <iostream>
ing namespace cv;
ing namespace std;
7.int main (int argc, char **argv)
8.{
9. Mat image, image_gray;
10. image = imread(argv[1], CV_LOAD_IMAGE_COLOR );
11.if (argc != 2 || !image.data) {
12. cout << "No image data\n";
13.return -1;
14. }
15.
16. cvtColor(image, image_gray, CV_RGB2GRAY);
17. namedWindow("image", CV_WINDOW_AUTOSIZE);
18. namedWindow("image gray", CV_WINDOW_AUTOSIZE);
19.
20. imshow("image", image);
21. imshow("image gray", image_gray);
22.
23. waitKey(0);
24.return 0;
25.}
【makefile】
[plain]view plaincopy
= g++
2.# 可执行文件
3.TARGET = test
4.# C文件
5.SRCS = test.cpp
6.# 目标文件
7.OBJS = $(SRCS:.cpp=.o)
8.# 库文件
9.DLIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui
10.# 链接为可执行文件
11.$(TARGET):$(OBJS)
12. $(CC) -o $@ $^ $(DLIBS)
13.clean:
14. rm -rf $(TARGET) $(OBJS)
15.# 编译规则 $@代表目标文件 $< 代表第一个依赖文件
16.%.o:%.cpp
17. $(CC) -o $@ -c $<
【简单说明】
DLIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui
示例中使用了opencv中的核心部分、图像处理部分和GUI部分,所以依次增加opencv_core、opencv_imgproc、opencv_highgui动态链接库。
该部分和和【树莓派学习笔记——源代码方式安装opencv】中的示例稍
有不同,前文中的makefile使用LIBS = $(shell pkg-config --libs opencv)引入所有的opencv动态链接库,此处手动指定相关库按需链接。
【编译】
make
【执行】
./test raspberry.jpg
可执行文件test和raspberry.jpg应在同一个目录中。
运行结果如下图所示,说明opencv得以正常运行。
图1 运行结果
3.总结
通过源代码方式安装opencv更加方便,安装时间也更短。