Python使用Opencv提取指定区域的图像
在开始之前,我们需要安装相关的第三方库(opencv),在控制台使用pip安装。
pip install opencv-python
Opencv调用摄像头获取图像
import cv2
video = cv2.VideoCapture(0)
while True:
ret,frame = video.read()
cv2.imshow("Video_show", cv2.resize(frame,(600,400)))#视频显示窗口设置
if cv2.waitKey(1) & 0xFF ==ord('q'):#按下按钮q时结束
break
cap.release()
cv2.destroyAllWindows()
此时就可以调用计算机摄像头获取视频
特定区域视频提取
我们需要从视频中选取特定区域
if cv2.waitKey(1) & 0xff == ord("q"):
select_data = cv2.selectROI("Video_show",frame)
并将选定区域的图像单独显示出来。
choose_data = frame[select_data[1]:select_data[1]+select_data[3],select_data[0]:select_data[0]+select_data[2]]
cv2.imshow("choose_video",choose_data)
完整代码
import cv2
def video_show():
choose_video = False
while True:
ret1,frame = video.read()
if not ret1:
print("视频获取失败!")
break
cv2.imshow("Video_show",frame)
if cv2.waitKey(1) & 0xff == ord("q"):
select_data = cv2.selectROI("Video_show",frame)
choose_video = True
if choose_video :
#获取选择框内的图像
choose_data = frame[select_data[1]:select_data[1]+select_data[3],select_data[0]:select_data[0]+select_data[2]]
cv2.imshow("choose_video",choose_data)
if cv2.waitKey(1) & 0xff == ord("p"):
break
video.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
video = cv2.VideoCapture(0)
video_show()