OpenCV的简单学习(二)显示摄像头的帧

本文介绍了使用OpenCV实现图像部分区域的复制与叠加,并演示了如何实时显示摄像头的帧数据。通过代码示例展示了如何绑定图像区域、进行图像叠加及设置鼠标回调函数来控制摄像头画面的显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天先给大家介绍一个简单的OpenCV的操作,将一幅图像的一部分覆盖在另一部分上,比如说你可以把一个狗头放到你的照片里的头上大笑,上代码:
import cv2
import numpy as np

img=cv2.imread('test.jpg')
area=img[0:200,0:200]  //将该区域与变量绑定
img[300:500,300:500]=area //将绑定的区域覆盖在新区域上
cv2.imshow('my image',img)
cv2.waitKey()
cv2.destroyWindow()
这样就达到你的目的了,因为目前还没有掌握好位置与坐标的关系,所以就不上图了哈哈。
下面讲OpenCV如何实时显示摄像头的帧。
# -*- coding: utf-8 -*-
import cv2
clicked=False
def onMouse(event,x,y,flags,param):
    global clicked  //此语句可修改全局变量clicked
    if event == cv2.EVENT_LBUTTONUP:
        clicked=True  //用户鼠标点击鼠标左键后退出

cameraCapture=cv2.VideoCapture(0)
cv2.namedWindow('MyWindow')  //创建一个窗口并命名
cv2.setMouseCallback('MyWindow',onMouse)  //鼠标回调函数,指定鼠标操作信息并回调。
print 'showing camera feed, click Window or press any key to stop.'
success,frame=cameraCapture.read()
while success and cv2.waitKey(1) == -1 and not clicked:
    cv2.imshow('MyWindow',frame)
    success,frame=cameraCapture.read()  //循环获取每帧数据

cv2.destroyWindow('MyWindow')  //养成销毁窗口的习惯
cameraCapture.release()  //释放内存空间
我是利用的笔记本的摄像头,你也可以安装其它网络摄像头进行操作,OpenCV中应该有其它函数可以获取当前摄像头的编号,等用到的时候再查把。

欢迎多多交流!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值