91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

opencv python在視屏上截圖功能的實現方法

發布時間:2021-05-18 10:57:26 來源:億速云 閱讀:254 作者:小新 欄目:開發技術

小編給大家分享一下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月開始實現。

介紹

因為我是一個小白,所以代碼就比較簡單,如果有錯誤,希望大家可以評論下告訴我,感激。

效果

藍色框框是我們要截下的圖

opencv python在視屏上截圖功能的實現方法

這是截完后的圖

opencv python在視屏上截圖功能的實現方法

代碼

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]這個先是行,再是列。

python是什么意思

Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。

以上是“opencv python在視屏上截圖功能的實現方法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平邑县| 上蔡县| 邻水| 灵台县| 沅江市| 凌云县| 德阳市| 梁平县| 海南省| 朝阳县| 乾安县| 百色市| 天气| 洪湖市| 永城市| 乐陵市| 田阳县| 东乌| 衢州市| 翼城县| 孟津县| 武鸣县| 四川省| 美姑县| 潮安县| 十堰市| 扬中市| 杭锦旗| 贵阳市| 龙岩市| 东光县| 册亨县| 浠水县| 客服| 方城县| 房产| 利辛县| 彭阳县| 滁州市| 元谋县| 承德县|