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

溫馨提示×

溫馨提示×

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

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

Python Opencv通過軌跡如何欄實現更改整張圖像的背景顏色

發布時間:2021-05-18 11:23:03 來源:億速云 閱讀:196 作者:小新 欄目:開發技術

這篇文章主要介紹了Python Opencv通過軌跡如何欄實現更改整張圖像的背景顏色,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

實現軌跡(跟蹤)欄功能的函數

函數主要參數講解

cv.createTrackbar()——創建一個軌跡(跟蹤)欄
cv.getTrackbarPos()——獲取一個軌跡(跟蹤)欄的值

cv.createTrackbar()參數如下:

  • 參數一:trackbarname——軌跡(跟蹤)欄名稱

  • 參數二:winname——需要掛載軌跡(跟蹤)欄的窗體名

  • 參數三:value——默認值

  • 參數四:count——上限值

  • 參數五:onChange ——軌跡(跟蹤)欄的回調執行函數

  • (一般僅僅是通過軌跡欄修改值,然后讀取的話,這個參數可以不用管)參數六:userdata ——作為回調傳遞的用戶數據。它可以在不使用全局變量的情況下處理trackbar事件。

cv.getTrackbarPos()參數如下:

  • 參數一:trackbarname——需要讀取的軌跡(跟蹤)欄名稱

  • 參數二:winname——對應的窗體名

代碼實現

我們先創建一個窗體,為軌跡(跟蹤)欄的掛載做準備
~照片就默認創建一張黑色圖片

import cv2 as cv
import numpy as np

img = np.zeros((512, 512, 3), np.uint8)
cv.namedWindow('imag', cv.WINDOW_NORMAL)
cv.resizeWindow('imag', 510, 510)

接著我們把需要的軌跡(跟蹤)欄添加到這個窗體中(記得必須要創建軌跡(跟蹤)欄回調函數的!!!)
回調函數可以為pass空函數——但是必須要有!!!

這次要實現背景色的控制,那么我們設置三個軌跡(跟蹤)欄,每一個軌跡欄對應一個0~255的值——對應BGR中的三色值!!!

def nothing(x):
 pass

# 參數依次為:設置軌跡(跟蹤)欄名字,掛載的窗體, 默認值, 最大值,回調函數
cv.createTrackbar('R', 'imag', 0, 255, nothing) # R的值——nothing傳入一個空函數體,不執行任何回調函數
cv.createTrackbar('G', 'imag', 0, 255, nothing) # G的值
cv.createTrackbar('B', 'imag', 0, 255, nothing) # B的值

switch = '1:ON\n0:OFF'
cv.createTrackbar(switch, 'imag', 0, 1, nothing) 
 # 設置一個開關——當為1時,圖片背景可以改變——否則為黑色

顯示主體部分的代碼

 while True:
  cv.imshow('imag', img)
  k = cv.waitKey(1) & 0xFF
  if k == 27: # ESC退出
   break
  if cv.getTrackbarPos(switch, 'imag') == 1: # 當swtch軌跡(跟蹤)欄的值為1時,允許改變背景色
   img[:] = [cv.getTrackbarPos('B', 'imag'), cv.getTrackbarPos('G', 'imag'), cv.getTrackbarPos('R', 'imag')]
   # getTrackbarPos的參數為:讀取值的軌跡(跟蹤)欄名,所在的窗體名
   # opencv的顏色為BGR——依次獲取軌跡(跟蹤)欄的值就可以了~
  else: # 否則為默認黑色
   img[:] = 0
 cv.destroyAllWindows()

效果

完整代碼

import cv2 as cv
import numpy as np
def nothing(x):
 pass

if __name__ == "__main__":
 img = np.zeros((512, 512, 3), np.uint8)
 cv.namedWindow('imag', cv.WINDOW_NORMAL)
 cv.resizeWindow('imag', 510, 510)

 cv.createTrackbar('R', 'imag', 0, 255, nothing)
 cv.createTrackbar('G', 'imag', 0, 255, nothing)
 cv.createTrackbar('B', 'imag', 0, 255, nothing)
 
 switch = '1:ON\n0:OFF'
 cv.createTrackbar(switch, 'imag', 0, 1, nothing)
 while True:
  cv.imshow('imag', img)
  k = cv.waitKey(1) & 0xFF
  if k == 27:
   break
  if cv.getTrackbarPos(switch, 'imag') == 1:
   img[:] = [cv.getTrackbarPos('B', 'imag'), cv.getTrackbarPos('G', 'imag'), cv.getTrackbarPos('R', 'imag')]
  else:
   img[:] = 0
 cv.destroyAllWindows()

效果

默認打開的樣子~

Python Opencv通過軌跡如何欄實現更改整張圖像的背景顏色

此時調節背景色是不改變的~

Python Opencv通過軌跡如何欄實現更改整張圖像的背景顏色

當打開時,背景色就會發生改變了~

Python Opencv通過軌跡如何欄實現更改整張圖像的背景顏色

小訓

訓練要求

我們通過鼠標繪制一些東西,然后將背景顏色的修改,作為圖片刷新(清空內容)~

代碼結構

鼠標回調函數(包含包的引用)

import cv2 as cv
import numpy as np
drawing = False
line_size = 2


def mouse_function(event, x, y, flags, param): # 鼠標回調函數——執行鼠標左鍵按下后移動繪圖
 global drawing, line_size
 if event == cv.EVENT_LBUTTONDOWN:
  drawing = True
 elif event == cv.EVENT_MOUSEMOVE:
  if drawing is True:
   cv.circle(img, (x, y), line_size, (0, 125, 255), -1, cv.LINE_AA)
 elif event == cv.EVENT_LBUTTONUP:
  drawing = False
  cv.circle(img, (x, y), line_size, (0, 125, 255), -1, cv.LINE_AA)

軌跡(跟蹤)欄回調函數

# 這里不需要任何操作~所以用pass空函數體即可
def nothing(x):
 pass

__main__主體代碼
if __name__ == "__main__":
 img = np.zeros((512, 512, 3), np.uint8)
 cv.namedWindow('imag', cv.WINDOW_NORMAL)
 cv.resizeWindow('imag', 510, 510)
 cv.setMouseCallback('imag', mouse_function) # 實現鼠標回調函數

 cv.createTrackbar('R', 'imag', 0, 255, nothing) # 設置R軌跡(跟蹤)欄
 cv.createTrackbar('G', 'imag', 0, 255, nothing)
 cv.createTrackbar('B', 'imag', 0, 255, nothing)
 
 switch = '1:ON\n0:OFF'
 cv.createTrackbar(switch, 'imag', 0, 1, nothing) # 設置開關控制軌跡(跟蹤)欄

 while True:
  cv.imshow('imag', img)
  k = cv.waitKey(1) & 0xFF
  if k == 27:
   break
  if cv.getTrackbarPos(switch, 'imag') == 1: # 為1是,刷新畫面
   img[:] = [cv.getTrackbarPos('B', 'imag'), cv.getTrackbarPos('G', 'imag'), cv.getTrackbarPos('R', 'imag')]
   cv.setTrackbarPos(switch, 'imag', 0) # 通過set軌跡(跟蹤)欄位置,實現為1刷新后,及時回到0位置
 cv.destroyAllWindows()

效果:(小訓練的代碼連起來就可以直接運行的,這里就不單獨再寫一遍了)
先隨意用鼠標寫“開心”兩個字~

Python Opencv通過軌跡如何欄實現更改整張圖像的背景顏色

接著點擊這里(可能需要點一次選中軌跡(跟蹤)欄,再點擊才能執行變化)

Python Opencv通過軌跡如何欄實現更改整張圖像的背景顏色

然后就實現刷新了~

Python Opencv通過軌跡如何欄實現更改整張圖像的背景顏色

我們再寫點其它的——

Python Opencv通過軌跡如何欄實現更改整張圖像的背景顏色

python的數據類型有哪些?

python的數據類型:1. 數字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數據組合。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python Opencv通過軌跡如何欄實現更改整張圖像的背景顏色”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

岳普湖县| 常宁市| 永昌县| 潼南县| 宁波市| 昭苏县| 卢湾区| 临桂县| 屏东县| 凌海市| 兴山县| 济南市| 东兰县| 始兴县| 虞城县| 辉县市| 灵璧县| 宁波市| 子长县| 阿尔山市| 高要市| 宜兰市| 九江县| 瑞丽市| 丹阳市| 丹巴县| 瓮安县| 恭城| 中超| 三都| 永登县| 山西省| 琼中| 万州区| 东平县| 盱眙县| 抚远县| 巴林右旗| 克东县| 绥德县| 洛宁县|