本篇推文共计1000个字,阅读时间约3分钟。
OpenCV是一个C++库,目前流行的计算机视觉编程库,用于实时处理计算机视觉方面的问题,它涵盖了很多计算机视觉领域的模块。在Python中常使用OpenCV库实现图像处理。本文的主要内容是Python3+OpenCV实现对图片,摄像头的简单操作。
图片来源:YouTube
No.1
电脑环境准备
Python版本:
Python3.7
OpenCV版本:
OpenCV4.1
No.2
Python3+OpenCV对图片进行操作
import cv2
# 识别图片
img = cv2.imread('hello.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
No.3
Python3+OpenCV对视频进行操作
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()
执行以上代码输出结果为:
往期回顾
武汉加油,中国加油!
欢迎各位读者在下方进行提问留言
☆ END ☆
你与世界
只差一个
公众号
喜欢本推文的话麻烦你点个“在看”或“分享至朋友圈”