图像基础--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()

运行代码后,就显示一个灰色的猫咪,

图像基础--OpenCV 安装

按下 s 键,在目录下生成一个 test_1.jpg,也就是这只灰色的猫咪

图像基础--OpenCV 安装

小结 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 代码片段

OpenCV-Python实战——OpenCV简介与图像处理基础(万字总结,️建议收藏️)

以代码为基础的opencv-python学习 图像模糊

以代码为基础的opencv-python学习 图像二值化

OpenCV实战——OpenCV与图像处理

1.opencv—图像处理基础