今天先给大家介绍一个简单的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中应该有其它函数可以获取当前摄像头的编号,等用到的时候再查把。
欢迎多多交流!