123.Python——OpenCV实现视频窗口画中画的效果

发布时间:2026/11/2 23:35:57
123.Python——OpenCV实现视频窗口画中画的效果 这里把实现方法的具体说明拿出来给大家看看。1、先把主画面那边的摄像头视频给打开。然后再把显示这个视频的主窗口拿出来呈现给你看。2、与此同时, 把那个子画面里面的视频文件给打开了, 当然呢, 你也可以去打开任意一个视频流。3、先对子画面的大小进行缩放处理, 然后利用图像ROI操作这个办法, 把已经缩放好的子画面放到主画面里指定好的那个位置来显示。因为需要根据鼠标点击窗体的具体位置来实现子画面的移动,所以得在主窗体上面绑定鼠标事件。这里需要注意一点, 需要先定义好主窗体的名称, 并且在循环体的外面, 就把这个鼠标事件绑定到指定的那个主窗体上去。把那个能够实现出来的全部代码都交出来。import cv2import time#窗体响应鼠标事件鼠标左键按下返回坐标ix,iy250,250 #初始位置def on_mouse(event, x, y, flags, param):global ix,iyif event cv2.EVENT_LBUTTONDOWN:ix,iyx,y#print(x:,ix,y:,iy)return ix,iycap cv2.VideoCapture(0)#获取摄像头的分辨率#fps cap.get(cv2.CAP_PROP_FPS)subcapcv2.VideoCapture(img/subcam.mp4) #视频文件#定义窗体cv2.namedWindow(MainCam)#把鼠标事件绑定到窗体上cv2.setMouseCallback(MainCam,on_mouse)while cap.isOpened():ret, frame cap.read()subret,subframesubcap.read()subframecv2.resize(subframe,(subframe.shape[1]//6,subframe.shape[0]//6))subh,subwsubframe.shape[:2]#画中画将subframe画在frame上(x,y)是左上角的坐标#print(ix,iy)if ixframe.shape[1]-subw or iyframe.shape[0]-subh:ix,iy250,250frame[iy:iysubframe.shape[0],ix:ixsubframe.shape[1]]subframestrtimetime.strftime(%Y-%m-%d %H:%M:%S,time.localtime())cv2.putText(frame, strtime, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)cv2.imshow(MainCam, frame)if cv2.waitKey(1) 0xFF ord(q):breakif cv2.getWindowProperty(MainCam,cv2.WND_PROP_AUTOSIZE) 1:breakcap.release()cv2.destroyAllWindows()

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询