本文实例为大家分享了python-opencv鼠标事件画框圈定目标的具体代码,供大家参考,具体内容如下
在视频/相机中,用鼠标画矩形框,圈定目标,从而获得鼠标的起始坐标点a、终止坐标点b
# -*- coding: utf-8 -*- """ Created on Tue Dec 27 09:32:02 2016 @author: http://blog.csdn.net/lql0716 """ import cv2 import numpy as np current_pos = None tl = None br = None #鼠标事件 def get_rect(im, title='get_rect'): # (a,b) = get_rect(im, title='get_rect') mouse_params = {'tl': None, 'br': None, 'current_pos': None, 'released_once': False} cv2.namedWindow(title) cv2.moveWindow(title, 100, 100) def onMouse(event, x, y, flags, param): param['current_pos'] = (x, y) if param['tl'] is not None and not (flags & cv2.EVENT_FLAG_LBUTTON): param['released_once'] = True if flags & cv2.EVENT_FLAG_LBUTTON: if param['tl'] is None: param['tl'] = param['current_pos'] elif param['released_once']: param['br'] = param['current_pos'] cv2.setMouseCallback(title, onMouse, mouse_params) cv2.imshow(title, im) while mouse_params['br'] is None: im_draw = np.copy(im) if mouse_params['tl'] is not None: cv2.rectangle(im_draw, mouse_params['tl'], mouse_params['current_pos'], (255, 0, 0)) cv2.imshow(title, im_draw) _ = cv2.waitKey(10) cv2.destroyWindow(title) tl = (min(mouse_params['tl'][0], mouse_params['br'][0]), min(mouse_params['tl'][1], mouse_params['br'][1])) br = (max(mouse_params['tl'][0], mouse_params['br'][0]), max(mouse_params['tl'][1], mouse_params['br'][1])) return (tl, br) #tl=(y1,x1), br=(y2,x2) #读取摄像头/视频,然后用鼠标事件画框 def readVideo(pathName, skipFrame): #pathName为视频文件路径,skipFrame为视频的第skipFrame帧 cap = cv2.VideoCapture(0) #读取摄像头 if not cap.isOpened(): #如果为发现摄像头,则按照路径pathName读取视频文件 cap = cv2.VideoCapture(pathName) #读取视频文件,如pathName='D:/test/test.mp4' c = 1 while(cap.isOpened()): ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) if(c>=skipFrame): mask = np.zeros(gray.shape, dtype=np.uint8) #掩码操作,该矩阵与图片大小类型一致,为初始化全0像素值,之后对其操作区域赋值为1即可 if(c==skipFrame): (a,b) = get_rect(frame, title='get_rect') #鼠标画矩形框 img01, img02 = frame, frame gray01, gray02 = gray, gray else: img1, img2 = prev_frame, frame gray1, gray2 = prev_frame, frame cv2.imshow('frame', frame) c = c + 1 prev_gray = gray prev_frame = frame if cv2.waitKey(1) & 0xFF == ord('q'): #点击视频窗口,按q键退出 break cap.release() cv2.destroyAllWindows()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
金钱帮资源网 Copyright www.kbjia.com
暂无“python opencv鼠标事件实现画框圈定目标获取坐标信息”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年10月10日
2024年10月10日
- 邰肇玫.1981-雪歌(滚石25周年经典复刻系列)【滚石】【WAV+CUE】
- 《Duck Side of the Moon》特色玩法介绍
- 《刀郎 辉煌10年绝版珍藏 3CD》[WAV/分轨][1.6GB]
- 《张韶涵 全面沦陷》[WAV/分轨][370MB]
- 《极品汽车音乐 三十而立 一起走过的岁月 2CD》[WAV/分轨][990MB]
- 周冰倩1997-珍藏精选-真的好想你[WAV+CUE]
- 许廷铿2017《THEULTIMATECOLLECTION》2CD[星梦娱乐][WAV+CUE]
- 徐小明1983-再向虎山行(LP版)[文志][WAV+CUE]
- 《黑神话:悟空》石双双COS热潮持续升温 丝袜你喜欢么
- Qiddiya IRL游戏之旅在东京电玩展重磅登场
- 北京首家任天堂Switch体验店开业:国行机立减200元
- 张秀卿.1999-赢【神采】【WAV+CUE】
- 群星.1977-多多宝丽多(LP版)【宝丽金】【WAV+CUE】
- 刘德华.1989-永远...记得你(2012金碟复刻版)【EMI百代】【WAV+CUE】
- 《维纳斯璀璨假期死或生Xtreme》游戏特色玩法