一、Open CV简介
Opencv(Open Source Computer Vision Library)是一个基于开源发行的跨平台计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法,已成为计算机视觉领域最有力的研究工具。使用python比c++慢。
(一)图像处理和计算机视觉
区别:
- 图像处理侧重于“处理”图像–如增强,还原,去噪,分割等等;
- 计算机视觉重点在于使用计算机来模拟人的视觉,因此模拟才是计算机视觉领域的最终目标。
(二)Numpy
OpenCV-Python使用Numpy,这是一个高度优化的数据库操作库,具有MATLAB风格的语法。所有OpenCV数组结构都转换为Numpy数组。
二、语法介绍
(一)图像的IO操作
1.读取图像
cv.imread('图像路径.jpg',参数2)
- 参数1:要读取的图像
- 参数2:读取方式的标志
-
cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数。
-
cv.IMREAD*GRAYSCALE:以灰度模式加载图像
-
cv.IMREAD_UNCHANGED:包括alpha通道的加载图像模式。
-
或者输入0和其他数值,0表示灰度,其他为彩色
-
2. 显示图像
cv.imshow('显示图像的串口名称*字符串类型*',要加载的图像)
#或者直接print
△注意:
在调用显示图像的接口后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来。
也可使用matplotlib
plt.imshow(要加载的图像)
复习一下~
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
img_OpenCV = cv.imread('C:/Users/LEGION/Pictures/bqb/wow.jpg')
b, g, r = cv.split(img_OpenCV)#分割RGB,耗时
img_matplotlib = cv.merge([r, g, b])#若需要用matplotlib显示,类似的调用show函数即可
cv.imshow('bgr image', img_OpenCV)
cv.imshow('rgb image', img_matplotlib)
cv.waitKey()
cv.destroyAllWindows()
改进耗时(分割RGB)部分代码片实现把BGR转换为RGB 使用numpy
1.
B = img_OpenCV[:, :, 0]
G = img_OpenCV[:, :, 1]
R = img_OpenCV[:, :, 2]
img_matplotlib = img_OpenCV[:, :, ::-1]
3.保存图像
cv.imwrite('文件名',保存路径)