opencv python在视屏上截图功能的实现
OpenCV简介
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python、JavaandMATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ch、Ruby,GO的支持。
所有新的开发和算法都是用C++接口。一个使用CUDA的GPU接口也于2010年9月开始实现。
介绍
因为我是一个小白,所以代码就比较简单,如果有错误,希望大家可以评论下告诉我,感激。
效果
蓝色框框是我们要截下的图
这是截完后的图
代码
importcv2
importnumpyasnp
importmatplotlib.pyplotasplt
i=w=h=f1=f2=ew=eh=0
defcut(event,x,y,flags,param):
globali,w,h,f1,f2,ew,eh
img=0
#这一个if的作用是,当鼠标左键按下,记录开始的位置
ifevent==cv2.EVENT_LBUTTONDOWN:
f1=1
h=x
w=y
print("w=",w,"h=",h)
#这一步的作用是当鼠标滑动时,并且左键是按下的时候,就画一个框框,并且记录左后一个位置
ifevent==cv2.EVENT_MOUSEMOVEandflags==cv2.EVENT_FLAG_LBUTTON:
img=frame.copy()
cv2.rectangle(img,(h,w),(x,y),(255,0,0),5)
cv2.imshow("frame",img)
f2=1
eh=x
ew=y
#当执行了以上的两步时候,并且左键是松开的,就可以进行截出一张图片。
iff1==1andf2==1andevent==cv2.EVENT_LBUTTONUP:
#下面两个if是向各个方向上截图的考虑
ifew
注意
x,y和w,h,的不同,x代表的图像的列,y是代表着行
frame[w:ew,h:eh]这个先是行,再是列。
总结
到此这篇关于opencvpython在视屏上截图的文章就介绍到这了,更多相关opencv视屏截图内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。