Python使用Opencv提取特定区域的图像

Python使用Opencv提取指定区域的图像

在开始之前,我们需要安装相关的第三方库(opencv),在控制台使用pip安装。

pip install opencv-python

Opencv调用摄像头获取图像

import cv2

video = cv2.VideoCapture(0)
while True:
    ret,frame = cap.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()

你可能感兴趣的:(图形图像处理)