图像基础--OpenCV 安装
Posted 网络空间安全社
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像基础--OpenCV 安装相关的知识,希望对你有一定的参考价值。
python 安装
https://www.anaconda.com/products/individual
根据系统选择适合自己的 anaconda 对应版本,这里需要说明一下,anaconda 里边包含了 python 环境在内的很多常用机器学习库,可以说是一个集成化环境,安装 anaconda 后就没必要再进行后续麻烦的各种库文件的安装了。
IDE 的选择
-
jupyter notebook -
pycharm -
spyder 这里我比较推荐的是 jupyter notebook
,这是一个交互式代码编辑器(anaconda自带,直接命令行输入 jupyter notebook 编辑器就启动了),做机器学习,或者是数据分析,可视化等方面的工作简直不能再好用了。所见即所得是它的一个特性,更多内容等着你自己来开发。
Open-CV安装 anaconda 安装好之后,就是 Open-CV 的下载安装了,这里可能就有人说,你刚才不是刚说过 anaconda 不是包含了很多机器学习库嘛?怎么又需要安装?
emmmmmm
我保证这是最后一个了,
pip install opencv-python
安装可能会比较慢,科学上网的话可以进行加速,我从原本的10k/s 瞬间变成 1M/s ,校园网最高也就 1M 左右。安装半分钟就ok 了。另外大家可以试一试修改清华镜像来使用conda install opencv-python
加速安装,这里我遇到未知错误安装失败。
读入图像
参数:cv.imread()
参数说明:第一个参数为待读路径,第二个参数为读取方式 使用示例:
import numpy as np
import cv2
#导入图片
img = cv2.imread('test.png', 0)
print(img) #查看以下图片信息
[[243 243 243 ... 241 241 241] [243 243 243 ... 241 241 241]
[243 243 243 ... 241 241 241]
...
[131 138 140 ... 215 215 215]
[131 134 133 ... 215 215 215]
[136 140 138 ... 215 215 215]]
可以看到图像在计算机中,是以矩阵的方式存储的,这里我的参数设置的是 “0”,所以它是一个二维矩阵,灰度图像的矩阵是二维的。
参数:cv.imshow()
参数说明:第一个参数为窗口的名字,第二个参数为图像数据名。使用示例:
cv.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey() 是一个键盘绑定函数,参数单位毫秒,0表示等待键盘输入 cv2.destroyAllWindows() 删除窗口,默认值为所有窗口,参数为待删除窗口名
参数 cv.write()
参数说明:
-
第一个参数为图像名(包含格式), -
第二个参数为图像数据名 使用示例:
cv2.imwrite('test_1.jpg', img)
小结1
下面的程序将使用 opencv 加载一个灰度图;显示图像,按下“s”键保存后退出;或按下 ESC 键退出不保存
import numpy as np
import cv2
#导入图像
img = cv2.imread('test.png', 0) #只要需要将参数改成1,图像就会变成彩色的,0 表示灰度
cv2.imshow('image', img)
k = cv2.waitkey(0) #等待键盘输入
if k == 27: #输入 ESC 键退出
cv2.destroyAllWindows()
elif k == ord("s"): #输入 s 键保存图片并退出
cv2.imwrite('test_1.jpg', img)
cv2.destroyAllWindows()
运行代码后,就显示一个灰色的猫咪,
按下 s 键,在目录下生成一个 test_1.jpg,也就是这只灰色的猫咪
小结 2
接下来使用 opencv 加载一个灰度图,使用 Matplotlib 显示图片,可以选择放大或保存。
#加载第三方包
import numpy as np
import cv2
from matplotlib import pyplot as plt
#使用 Matplotlib 导入图像
img = cv2.imread('test.png', 0)
plt.imshow(img, cmap='gray', interpolation='bicubic')
#隐藏 X,Y 轴刻度
plt.xticks([]), plt.yticks([])
plt.show()
##开启摄像头
函数1:cv.VideoCapture()
参数说明:
-
0,1 代表电脑摄像头,或视频文件路径
函数2:cap.read()
说明:返回布尔值True/False,控制是否结尾
小结
下面的程序将使用 opencv 加载一个灰度图,显示图片,按下 ”s“键保存后退出,或者按下 ESC 键退出不保存
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
#获取一帧帧的图像
ret, frame = cap.read() # frame 得到的就是每一帧的图片
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', gray)
if cv2.waitKey(1) & oxFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
保存视频
创建 VideoWriter 对象
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
参数说明:
-
第一参数:保存视频名字 -
第二参数 :FourCC 为 4 字节码,确定视频的编码格式 -
第三参数:播放帧率 -
第四参数:大小 -
第五参数:默认为 True ,彩色图 使用示例:
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
fourcc = cv2.cv.FOURCC(*'XVID')
out = cv2.VideoWriter('outpit.avi', fourcc, 20.0, (640, 480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret == True:
frame = cv2.flip(frame,0)
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & oxFF == ord('q'):
break
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
总结
-
图像与矩阵的关系 -
图像读取与显示 -
视频和图像的关系 -
视频的读取与显示 欢迎关注公众号!
以上是关于图像基础--OpenCV 安装的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 多处理进程中运行较慢的 OpenCV 代码片段