opencv python在视屏上截图功能的实现
作者:命运使我们相遇
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。这篇文章主要介绍了opencv python在视屏上截图,需要的朋友可以参考下
OpenCV简介
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python、Java and MATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ch、Ruby,GO的支持。
所有新的开发和算法都是用C++接口。一个使用CUDA的GPU接口也于2010年9月开始实现。
介绍
因为我是一个小白,所以代码就比较简单,如果有错误,希望大家可以评论下告诉我,感激。
效果
蓝色框框是我们要截下的图
这是截完后的图
代码
import cv2 import numpy as np import matplotlib.pyplot as plt i = w = h = f1 = f2 = ew = eh = 0 def cut(event, x, y, flags, param): global i,w,h, f1,f2,ew,eh img = 0 #这一个if的作用是,当鼠标左键按下,记录开始的位置 if event == cv2.EVENT_LBUTTONDOWN: f1 = 1 h = x w = y print("w = ", w, "h = ", h) #这一步的作用是当鼠标滑动时,并且左键是按下的时候,就画一个框框,并且记录左后一个位置 if event == cv2.EVENT_MOUSEMOVE and flags == 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 #当执行了以上的两步时候,并且左键是松开的,就可以进行截出一张图片。 if f1 == 1 and f2 == 1 and event == cv2.EVENT_LBUTTONUP: #下面两个if是向各个方向上截图的考虑 if ew < w: w,ew = ew,w if eh < h: eh,h = h, eh i += 1 f1 = f2 = 0 img = frame[w:ew, h:eh] path = "C:/test2/" + "%d"%i+".jpg" cv2.imwrite(path,img) #这时创建一个对像 cap = cv2.VideoCapture("C:/test2/bbb.mp4") #这是命名一个窗口,与下面的鼠标结合,鼠标会在这个窗口中产生效果 cv2.namedWindow("frame",cv2.WINDOW_NORMAL) cv2.setMouseCallback("frame",cut) while True: #读取图片 ret, frame = cap.read() if ret == False: break cv2.imshow("frame", frame) #如果输入'c',就进行切割。 if cv2.waitKey(10) == ord("c"): cv2.waitKey(0) if cv2.waitKey(10) == ord('q'): break
注意
x,y和 w,h, 的不同,x 代表的图像的列,y是代表着行
frame[w:ew, h:eh]这个先是行,再是列。
总结
到此这篇关于opencv python在视屏上截图的文章就介绍到这了,更多相关opencv 视屏截图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
- Python3 pywin32模块安装的详细步骤
- Windows平台Python编程必会模块之pywin32介绍
- Python操作word常见方法示例【win32com与docx模块】
- Python如何截图保存的三种方法(小结)
- python opencv 检测移动物体并截图保存实例
- Python文字截图识别OCR工具实例解析
- 通过python实现windows桌面截图代码实例
- Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
- 使用python实现对元素的长截图功能
- Python 通过截图匹配原图中的位置(opencv)实例
- 对Python获取屏幕截图的4种方法详解
- python调用win32接口进行截图的示例