OpenCV学习(一)—环境搭建

学习目的

偶尔看了一下招聘,好多企业对音视频有些许的要求,那就先入个门,整个opencv学习一下,刚买的树莓派的摄像头也到了,usb摄像头也到了,还有一个单片机的摄像头模块,都学一下,现在大环境不好,工人嘛,还是需要性价比高一些,才好找出路噻。

没说要离职啊,不要多想。

安装环境

我是在虚拟机下学习的,安装的是ubuntu22.04的版本。
系统下载地址

首先安装了ssh服务

sudo apt-get install openssh-server

安装这个不是主要为了用命令行软件,而是为了winscp拷贝东西方便一些。

安装前置依赖软件

sudo apt-get install cmake gcc g++ python3-dev python3-numpy libavcodec-dev libavformat-dev libswscale-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libgtk-3-dev

安装一些图片依赖库:

sudo apt-get install libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev 

下载opencv源码

git clone https://gitclone.com/github.com/opencv/opencv

编译源码

cd opencv
mkdir build
cd bulid
cmake ../

大概需要2个小时,参考博客的博主用五个小时,看来我这个电脑还阔以啊

最后安装

sudo make install

然后回滚打印,查看一下cv2的安装位置

然后输出python3的环境看一下是否包含在内

 python3 -c "import sys; print(sys.path)"
['', '/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload', '/home/xxx/.local/lib/python3.10/site-packages', '/usr/local/lib/python3.10/dist-packages', '/usr/lib/python3/dist-packages']

/usr/local/lib/python3.10/dist-packages包含在内,正好,不需要再添加了。

安装pip

pip主要是为了python安装模块使用

apt-get install python3-pip

安装matplotlib模块

python3 -m pip install -U matplotlib

Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
Matplotlib 可以用来绘制各种静态,动态,交互式的图表。
Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。
Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。

程序测试

来一个测试程序,注意是在python3命令行中

import matplotlib
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('/home/sunjin/work/123.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()


因为是灰度显示,所以皮搋子头变成了灰色
原图是这个

摄像头测试

首先要配置一下虚拟机中的USB配置,改为3.0。

然后USB设备与虚拟机相连,即断开与主机的连接。

#!/usr/bin/python3
#1.引入cv2
import cv2

#2.主函数
#if __name__ == '__main__':

#3.打开笔记本摄像头
cap = cv2.VideoCapture(0)
assert cap.isOpened(), 'Cannot capture source' #摄像头没有正常打开则报错

#4.摄像头能打开则获取图像帧,显示图像
while cap.isOpened():
    #read()函数返回两个参数,第一个为参数为bool值,表示是否获取到图像,
    #第二个参数为当前帧图像
    ret, frame = cap.read()
    # 将获取到的当前帧水品翻转
    # 第二个参数:  1 表示水平翻转; 0 表示垂直翻转;  小于0 表示水平垂直翻转
    frame = cv2.flip(frame,1)
    cv2.imshow('mycreame',frame)  #显示当前帧
    if ( cv2.waitKey(30)  == 27 ):   #按下Esc键则退出    waitKey()方法表示等待键盘输入,单位为毫秒
        break
#5.关闭所有窗口
cv2.destroyAllWindows()

部分截图,以免造成不适

万事俱备,只欠学习了

参考博客
B站章鱼萝卜猫《Ubuntu环境下编译安装OpenCV-Python》

结束语

今天海淀的疫情又提升了等级,全部企业员工居家办公,大家的生活压力又要变大了。总说不想上班,真要是不上班了,按照北京市最低标准的待遇,又该难受了。

所以,还是老话一句,学习,永远不会背叛你,我们领导说,如果公司让我明天不要来了,我随时都能找到下一个工作,真的假的不做评判,但是这份自信,还是我们都要学习一下的。自信源自什么?还得是能力,还等什么,学就完了。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2022年5月23日
下一篇 2022年5月23日

相关推荐