最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Opencv 通過軌跡(跟蹤)欄實(shí)現(xiàn)更改整張圖像的背景顏色

 更新時(shí)間:2020年03月09日 11:29:27   作者:筆岸柳影  
這篇文章主要介紹了Python Opencv 通過軌跡(跟蹤)欄實(shí)現(xiàn)更改整張圖像的背景顏色,在文章末尾有一個(gè)小訓(xùn)練——是將所學(xué)得的圖像顏色修改應(yīng)用為畫板一般的刷新,需要的朋友可以參考下

?。?!本博客,是對(duì)圖像的背景顏色的修改的基礎(chǔ)講解~?。?!
還包括一個(gè)練習(xí)——是對(duì)背景色修改的一點(diǎn)應(yīng)用嘗試!?。 冀K相信學(xué)習(xí)多一點(diǎn)探索,腳步會(huì)更堅(jiān)定一些~

愿所有正在努力的人都可以堅(jiān)持自己的路一直走下去!

實(shí)現(xiàn)軌跡(跟蹤)欄功能的函數(shù)

函數(shù)主要參數(shù)講解

cv.createTrackbar()——?jiǎng)?chuàng)建一個(gè)軌跡(跟蹤)欄
cv.getTrackbarPos()——獲取一個(gè)軌跡(跟蹤)欄的值

cv.createTrackbar()參數(shù)如下:

  • 參數(shù)一:trackbarname——軌跡(跟蹤)欄名稱
  • 參數(shù)二:winname——需要掛載軌跡(跟蹤)欄的窗體名
  • 參數(shù)三:value——默認(rèn)值
  • 參數(shù)四:count——上限值
  • 參數(shù)五:onChange ——軌跡(跟蹤)欄的回調(diào)執(zhí)行函數(shù)
  • (一般僅僅是通過軌跡欄修改值,然后讀取的話,這個(gè)參數(shù)可以不用管)參數(shù)六:userdata ——作為回調(diào)傳遞的用戶數(shù)據(jù)。它可以在不使用全局變量的情況下處理trackbar事件。

cv.getTrackbarPos()參數(shù)如下:

  • 參數(shù)一:trackbarname——需要讀取的軌跡(跟蹤)欄名稱
  • 參數(shù)二:winname——對(duì)應(yīng)的窗體名

代碼實(shí)現(xiàn)

我們先創(chuàng)建一個(gè)窗體,為軌跡(跟蹤)欄的掛載做準(zhǔn)備
~照片就默認(rèn)創(chuàng)建一張黑色圖片

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)

接著我們把需要的軌跡(跟蹤)欄添加到這個(gè)窗體中(記得必須要?jiǎng)?chuàng)建軌跡(跟蹤)欄回調(diào)函數(shù)的!?。。?br /> 回調(diào)函數(shù)可以為pass空函數(shù)——但是必須要有?。。?/p>

這次要實(shí)現(xiàn)背景色的控制,那么我們?cè)O(shè)置三個(gè)軌跡(跟蹤)欄,每一個(gè)軌跡欄對(duì)應(yīng)一個(gè)0~255的值——對(duì)應(yīng)BGR中的三色值?。?!

def nothing(x):
 pass

# 參數(shù)依次為:設(shè)置軌跡(跟蹤)欄名字,掛載的窗體, 默認(rèn)值, 最大值,回調(diào)函數(shù)
cv.createTrackbar('R', 'imag', 0, 255, nothing) # R的值——nothing傳入一個(gè)空函數(shù)體,不執(zhí)行任何回調(diào)函數(shù)
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) 
 # 設(shè)置一個(gè)開關(guān)——當(dāng)為1時(shí),圖片背景可以改變——否則為黑色

顯示主體部分的代碼

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

效果

默認(rèn)打開的樣子~

在這里插入圖片描述

此時(shí)調(diào)節(jié)背景色是不改變的~

在這里插入圖片描述

當(dāng)打開時(shí),背景色就會(huì)發(fā)生改變了~

在這里插入圖片描述

小訓(xùn)

訓(xùn)練要求

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

代碼結(jié)構(gòu)

鼠標(biāo)回調(diào)函數(shù)(包含包的引用)

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


def mouse_function(event, x, y, flags, param): # 鼠標(biāo)回調(diào)函數(shù)——執(zhí)行鼠標(biāo)左鍵按下后移動(dòng)繪圖
 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)

軌跡(跟蹤)欄回調(diào)函數(shù)

# 這里不需要任何操作~所以用pass空函數(shù)體即可
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) # 實(shí)現(xiàn)鼠標(biāo)回調(diào)函數(shù)

 cv.createTrackbar('R', 'imag', 0, 255, nothing) # 設(shè)置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) # 設(shè)置開關(guān)控制軌跡(跟蹤)欄

 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軌跡(跟蹤)欄位置,實(shí)現(xiàn)為1刷新后,及時(shí)回到0位置
 cv.destroyAllWindows()

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

在這里插入圖片描述

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

在這里插入圖片描述

然后就實(shí)現(xiàn)刷新了~

在這里插入圖片描述

我們?cè)賹扅c(diǎn)其它的——

在這里插入圖片描述

到這里小練習(xí)也就結(jié)束了——既練習(xí)了鼠標(biāo)事件當(dāng)作畫筆,也實(shí)現(xiàn)了軌跡(跟蹤)欄的設(shè)置和讀取——當(dāng)作畫板刷新的功能(●'◡'●)

總結(jié)

到此這篇關(guān)于Python Opencv 通過軌跡(跟蹤)欄實(shí)現(xiàn)更改整張圖像的背景顏色的文章就介紹到這了,更多相關(guān)Python Opencv更改圖像的背景顏色內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用Python快速讀取Excel數(shù)據(jù)

    用Python快速讀取Excel數(shù)據(jù)

    嘿,想學(xué)會(huì)用Python快速讀取Excel數(shù)據(jù)嗎?不用擔(dān)心,這個(gè)指南將帶你輕松掌握這項(xiàng)技能,讓我們一起開始吧!
    2023-12-12
  • Python 實(shí)現(xiàn)圖片色彩轉(zhuǎn)換案例

    Python 實(shí)現(xiàn)圖片色彩轉(zhuǎn)換案例

    我們?cè)诳磩?dòng)漫、影視作品中,當(dāng)人物在回憶過程中,體現(xiàn)出來的畫面一般都是黑白或者褐色的。本文將提供將圖片色彩轉(zhuǎn)為黑白或者褐色風(fēng)格的案例詳解,感興趣的小伙伴可以了解一下。
    2021-11-11
  • Python使用matplotlib給柱狀圖添加數(shù)據(jù)標(biāo)簽bar_label()

    Python使用matplotlib給柱狀圖添加數(shù)據(jù)標(biāo)簽bar_label()

    這篇文章主要介紹了Python使用matplotlib給柱狀圖添加數(shù)據(jù)標(biāo)簽bar_label(),記錄如何用使用matplotlib給柱狀圖添加數(shù)據(jù)標(biāo)簽,是以matplotlib.pyplot.bar_label()為例,需要的朋友可以參考一下
    2022-03-03
  • Python使用Matplotlib繪制散點(diǎn)趨勢(shì)線的代碼詳解

    Python使用Matplotlib繪制散點(diǎn)趨勢(shì)線的代碼詳解

    Matplotlib是一個(gè)用于數(shù)據(jù)可視化的強(qiáng)大Python庫(kù),其基本功能之一是創(chuàng)建帶有趨勢(shì)線的散點(diǎn)圖,散點(diǎn)圖對(duì)于可視化變量之間的關(guān)系非常有用,本文將指導(dǎo)您使用Matplotlib繪制散點(diǎn)趨勢(shì)線的過程,涵蓋線性和多項(xiàng)式趨勢(shì)線,需要的朋友可以參考下
    2025-01-01
  • python中with語(yǔ)句結(jié)合上下文管理器操作詳解

    python中with語(yǔ)句結(jié)合上下文管理器操作詳解

    這篇文章主要給大家介紹了關(guān)于python中with語(yǔ)句結(jié)合上下文管理器操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法

    Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法

    今天小編就為大家分享一篇Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 利用Django提供的ModelForm增刪改數(shù)據(jù)的方法

    利用Django提供的ModelForm增刪改數(shù)據(jù)的方法

    這篇文章主要介紹了利用Django提供的ModelForm增刪改數(shù)據(jù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • 如何利用python實(shí)現(xiàn)圖片批處理

    如何利用python實(shí)現(xiàn)圖片批處理

    這篇文章主要給大家介紹了關(guān)于如何利用python實(shí)現(xiàn)圖片批處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python安裝whl文件過程圖解

    Python安裝whl文件過程圖解

    這篇文章主要介紹了Python安裝whl文件過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 根據(jù)tensor的名字獲取變量的值方式

    根據(jù)tensor的名字獲取變量的值方式

    今天小編就為大家分享一篇根據(jù)tensor的名字獲取變量的值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01

最新評(píng)論

镇江市| 保靖县| 额济纳旗| 偃师市| 利辛县| 秦安县| 海丰县| 札达县| 濮阳县| 武定县| 辽宁省| 罗江县| 长寿区| 珠海市| 太康县| 泰和县| 白山市| 威宁| 洛浦县| 贵德县| 江津市| 台州市| 许昌县| 楚雄市| 乌拉特中旗| 顺义区| 陕西省| 泗阳县| 咸宁市| 和平县| 海口市| 沁水县| 谷城县| 崇州市| 兖州市| 柳河县| 蒙城县| 浦北县| 贵德县| 清水县| 天柱县|