环境:
Python版本:3.6.2
opencv版本:opencv-python==3.4.3.18
安装opencv
pip install opencv-python
对图片操作
import cv2
# 识别图片
img = cv2.imread(‘cup.jpg‘, flags=cv2.IMREAD_LOAD_GDAL)
# 添加对图片的处理内容
# 展示的图片
cv2.imshow(‘hello‘, img)
cv2.waitKey(0)
cv2.destroyAllWindows()
其中,flags可以设置为哪些参数:
IMREAD_UNCHANGED:载入源图像,并添加alpha通道. (常用)
IMREAD_GRAYSCALE:始终将图像转换为灰度图再返回(常用选项)
IMREAD_COLOR:总是转换图像为3通道(BGR注意顺序)的彩×××像(常用选项)
IMREAD_ANYDEPTH:如果设置了这个,且载入的图像深度为16位/32位,那么就返回相应深度的图像,否则, 转换为8位返回(常用)
IMREAD_ANYCOLOR:如果设置了,那么就载入任意可能的颜色格式而不进行转换. (常用)
IMREAD_LOAD_GDAL:If set, use the gdal driver for loading the image.(默认)
IMREAD_REDUCED_GRAYSCALE_2:如果设置了这个,图像总是转换为单通道灰度图,且尺寸缩减为1/2
IMREAD_REDUCED_COLOR_2:图像总是转换为彩色3通道BGR且尺寸缩减为1/2.
IMREAD_REDUCED_GRAYSCALE_4:同上,灰度,缩减为1/4
IMREAD_REDUCED_COLOR_4:同上,彩色,缩减为1/4
IMREAD_REDUCED_GRAYSCALE_8:同上,灰度,缩减为1/8
IMREAD_REDUCED_COLOR_8:同上,彩色,缩减为1/8
对摄像头的操作
import cv2
def video_demo():
# 0是代表摄像头编号,只有一个的话默认为0
capture = cv2.VideoCapture(0)
if capture.isOpened():
print("摄像头已经连接")
while True:
# ret:是否成功读取帧,布尔值
# frame:帧本身的值
ret, frame = capture.read()
# print("type-frame:", type(frame)) # numpy.ndarray
# print("shape-frame:", np.shape(frame)) # (480, 640, 3)
# print("ret: ", ret) # True
# 窗口的名称为"camera",显示摄像头中的内容
cv2.imshow("camera", frame)
# cv.imshow("camera", frame[10:300, 50:400]) # 截取摄像头的摄像范围
# 按“Esc”退出
if cv2.waitKey(30) & 0xff == 27:
capture.release()
break
else:
print("未检测到摄像头")
video_demo()
cv2.waitKey()
cv2.destroyAllWindows()