技术标签: python显示图片并让用户框选
使用opencv从网络摄像头获取帧,然后进行绘图。
我在图的中心画一个矩形,然后得到选定的区域并显示在另一个绘图中(通过插值放大)import matplotlib.pyplot as plt
import matplotlib.animation as animation
import cv2
boxSize = 150
enlargeBy = 3
def getBoxCoordinates(cap, size):
width = cap.get(3)
height = cap.get(4)
x1 = int(width / 2) - int(size / 2)
y1 = int(height / 2) - int(size / 2)
x2 = int(width / 2) + int(size / 2)
y2 = int(height / 2) + int(size / 2)
return [(x1, y1), (x2, y2)]
def getBox(cap, boxSize, frame, enlargeBy):
[(x1, y1), (x2, y2)] = getBoxCoordinates(cap, boxSize);
# Get pixels in box
box_img = frame[y1 + 1:y2, x1 + 1:x2] # +1 cuz it excludes initial pixel interval
return cv2.resize(box_img, None, fx=enlargeBy, fy=enlargeBy,
interpolation=cv2.INTER_LINEAR) # different interpolation methods
cap = cv2.VideoCapture(0);
ret, frame = cap.read()
figWidth = 20
figHeight = 8
fig = plt.figure(figsize=(figWidth, figHeight))
enlarged = getBox(cap, boxSize, frame, enlargeBy)
[(x1, y1), (x2, y2)] = getBoxCoordinates(cap, boxSize);
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 0, 255), lineType=1)
video_plot = plt.subplot2grid((figHeight, figWidth), (0, 0), colspan=4, rowspan=4)
video_plot.axis('off')
video_plot.set_title("Camera feed")
video = video_plot.imshow(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
box_plot = plt.subplot2grid((figHeight, figWidth), (0, 4), colspan=4, rowspan=4)
box_plot.axis('off')
box_plot.set_title("Box")
box = box_plot.imshow(cv2.cvtColor(enlarged, cv2.COLOR_BGR2RGB)) #frame just to start
def updatefig(i):
ret, frame = cap.read()
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 0, 255), lineType=1)
enlarged = getBox(cap, boxSize, frame, enlargeBy)
video.set_data(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
box.set_data(cv2.cvtColor(enlarged, cv2.COLOR_BGR2RGB))
return [video, box]
ani = animation.FuncAnimation(fig, updatefig, interval=20, frames=200, blit=True)
plt.tight_layout()
plt.show()
cv2.destroyAllWindows()
plt.show()
我遇到的奇怪问题是,我在框架上绘制的矩形没有正确显示:它只显示一个或几个边。
我注意到,当图形尺寸发生变化时,这种情况会发生变化,例如上面的代码只显示底部和左侧,如果我更改:
^{pr2}$
然后我看到了底部、右侧和顶部,但没有看到左侧。在
不知道到底是什么原因造成了这种情况,也不知道该怎么解决。在
文章浏览阅读427次。通过可视化工具建库建表创建数据库CREATE DATABASE studb2 CHAR SET utf8;切换数据库(使用use 将数据库切换到 studb2)USE studb2 ;在studb2 中创建名为t_stu的表CREATE TABLE t_stu( sid VARCHAR(10) , sname VARCHAR(20), age INT, height FLOAT , weight DOUBLE)CHAR SET utf8_头歌实践教学平台数据库用户数据库的创建及删除
文章浏览阅读120次。系统里的目标文件是按照特定的目标文件格式来组织的,各个系统的目标文件格式都不相同。从贝尔实验室诞生的第一个Unix系统使用的是a.out格式(直到今天,可执行文件仍然称为a.out文件)。Windows使用可移植可执行(PortableExecutable,PE)格式。Mac OS-X使用Mach-O格式。现代x86-64Linux和Unix系统使用可执行可链接格式(Executable and Linkable Format,ELF)。_windows readelf
文章浏览阅读3.6k次。用人工智能普惠体育发展。
文章浏览阅读10w+次,点赞92次,收藏495次。表单提交方式一:直接利用form表单提交html页面代码:<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>Insert title here</title></head><body><form action="h..._提交表单
文章浏览阅读5.1k次。Unity Spine SkeletonGraphic 重复播放 过度残影Bug 解决方案不推荐使用SetToSetupPose和Setup Pose相关,代码直接贴上/// <summary>/// Spine播放设置/// </summary>/// <param name="trackIndex">填写0</param>/// <param name="animationName">动画名</param>/// &l_unity skeletongraphic
文章浏览阅读3.5k次。一、推导过程:二、结果:边缘分布x1,x2 各自依然服从 μi,写反差矩阵 Σii 的多元高斯分布;条件概率分布给定 xj 求 xi 的分布:μi|j=μi+ΣijΣ−1jj(xj−μj)Σi|j=Σjj−ΣTijΣ−1iiΣij..._高斯分布的条件概率
文章浏览阅读454次。正交频分复用(OFDM)是一种在现代通信系统中广泛使用的调制技术,它具有高效的频谱利用和抗多径衰落等特点。64QAM(64-ary Quadrature Amplitude Modulation)是一种调制方式,可以在每个符号中传输更多的位信息。在OFDM系统中,保持载波同步对确保数据传输的可靠性至关重要。_基于ofdm+64qam系统的载波同步matlab仿真,
文章浏览阅读67次。Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。若包含,则为maven项目,否则为非maven项目。Springboot毕设项目超市商品销售管理系统37x2w(java+VUE+Mybatis+Maven+Mysql)Springboot + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。其他版本理论上也可以。_vue+springboot+mybatis商品管理系统
文章浏览阅读3w次,点赞2次,收藏4次。转载自: http://blog.csdn.net/zouqin369/article/details/6913692 今天去公司设置好IP后,无论怎么样都上不了internet,再次打开本地后发现默认网关自动消失,cmd下输入ipconfig后的现象如下: 物理地址. . . . . . . . . . . . . : 00-22-64-55-76-8F DHCP 已启用_禁止修改网关命令
文章浏览阅读482次。Extjs的窗口是可以加载自己的HTML的,但这样两个页面就相当独立了,传参是个问题 ,网上也没有很好的解答清楚,猫猫今天就说清楚这个模式的传参要点。_extjs中打开网页怎么传参
文章浏览阅读811次。win_win port 进程
文章浏览阅读1.2k次。Ch3点到点数据链路层知识点1. 点到点数据链路层要解决的主要问题2. 常见的帧管理(帧定界)方法3. CRC的计算4. 流量控制的基本原理5. 常见错误及其处理机制6. 滑动窗口的概念、形式及工作原理7. ARQ(Automatic Repeat reQuest)协议工作原理:8. 连续ARQ(Go-back-N ARQ)工作原理(特别注意累计确认):9. 选择重传ARQ工作原理10. 了解(高..._hdlc go-back-n