如何使用OpenCV Python建立一個RGB顏色調色盤的滑動條?
在OpenCV中,可以使用 cv2.reateTrackbar()函數建立軌跡列。要存取所選軌跡欄位置的值,我們使用 cv2.getTrackbarPos() 函數。
使用這兩個函數,我們建立一個包含 R、G、B 顏色的追蹤欄的視窗和一個用於顯示所選顏色的顏色視窗。透過改變軌跡條的位置RGB顏色在0和255之間變化。請參閱以下這兩個函數的語法。
文法
cv2.createTrackbar(trackbar_name, window_name, default_value, max_value, callback_func) cv2.getTrackbarPos(trackbar_name, window_name)
參數
trackbar_name - 這是軌跡列名稱。此名稱用於存取軌跡欄位置值。
window_name - 這是追蹤列所附加的視窗的名稱。
default_value - 為軌跡列設定的預設值。
max_value - 軌跡列的最大值。
callback_func - 當軌跡欄值改變時執行的函數。
步驟
要建立一個RGB調色盤的軌跡欄,可以按照下面給出的步驟操作 -
第一步是導入所需的庫。所需的 Python 函式庫是 OpenCV 和 NumPy。確保您已經安裝了它們。
import cv2 import numpy as np
接下來,定義一個回呼函數。它將軌跡欄位置作為預設參數。我們定義這個函數不執行任何操作。
def nothing(x): pass
定義黑色影像並建立一個名為Trackbar Color Palette的視窗。軌跡欄和顏色將顯示在此視窗中。
img = np.zeros((300,650,3), np.uint8) window_name = 'Trackbar Color Palette' cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE)
透過所有五個參數建立用於顏色變更的軌跡欄。軌跡欄值的範圍在 0 到 255 之間。
cv2.createTrackbar('R',window_name,0,255,nothing) cv2.createTrackbar('G',window_name,0,255,nothing) cv2.createTrackbar('B',window_name,0,255,nothing)
取得所有三種 RGB 顏色的目前軌跡列位置。
r = cv2.getTrackbarPos('R',window_name) g = cv2.getTrackbarPos('G',window_name) b = cv2.getTrackbarPos('B',window_name)
更新上述顏色的彩色影像視窗。
img[:] = [b,g,r]
現在在顏色視窗中顯示所選軌跡欄值的顏色。
while(True): cv2.imshow(window_name,img) k = cv2.waitKey(1) & 0xFF if k == ord('q'): break
範例 1
在下面的Python程式中,我們建立一個視窗作為調色板。我們為 R、G 和 B 顏色創建了三個軌跡欄。滑動滑動條即可在顏色視窗中顯示相應的顏色。
# import required libraries import cv2 import numpy as np def nothing(x): pass # Create a black image, and the window img = np.zeros((300,650,3), np.uint8) window_name = 'Trackbar Color Palette' cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE) # create trackbars for color change cv2.createTrackbar('R',window_name,0,255,nothing) cv2.createTrackbar('G',window_name,0,255,nothing) cv2.createTrackbar('B',window_name,0,255,nothing) while(True): cv2.imshow(window_name,img) k = cv2.waitKey(1) & 0xFF if k == ord('q'): break # get current positions of four trackbars r = cv2.getTrackbarPos('R',window_name) g = cv2.getTrackbarPos('G',window_name) b = cv2.getTrackbarPos('B',window_name) img[:] = [b,g,r] cv2.destroyAllWindows()
輸出
當您執行上述程式時,您將看到以下輸出視窗。若要關閉輸出窗口,請按“q”按鈕。
#所有三個軌跡欄的預設值都是零,視窗的顏色為黑色。滑動滑動條即可在顏色視窗中看到相應的顏色。
範例 2
在此程式中,我們建立一個視窗作為帶有切換按鈕的調色板。
我們創建了四個軌跡欄,三個用於 R、G、B 顏色,一個用於切換按鈕。
當開關按鈕為ON時,則僅顯示顏色視窗中的顏色。滑動滑動條,顏色視窗中就會顯示相應的顏色。
import cv2 import numpy as np def nothing(x): pass # Create a black image, a window img = np.zeros((300,650,3), np.uint8) window_name = 'Trackbar Color Palette' cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE) # create trackbars for color change cv2.createTrackbar('R',window_name,0,255,nothing) cv2.createTrackbar('G',window_name,0,255,nothing) cv2.createTrackbar('B',window_name,0,255,nothing) # create switch for ON/OFF functionality # switch = '0 : OFF \n1 : ON' cv2.createTrackbar("switch", window_name,0,1,nothing) while(True): cv2.imshow(window_name,img) key = cv2.waitKey(1) & 0xFF if key == ord('q'): break # get current positions of four trackbars r = cv2.getTrackbarPos('R',window_name) g = cv2.getTrackbarPos('G',window_name) b = cv2.getTrackbarPos('B',window_name) s = cv2.getTrackbarPos("switch",window_name) if s == 0: img[:] = 0 else: img[:] = [b,g,r] cv2.destroyAllWindows()
輸出
當您執行上面的程式時,它將顯示以下輸出視窗。若要關閉輸出窗口,請按下「q」按鈕。
#所有軌跡列的預設值為0。窗戶的顏色是黑色。當您打開開關(選擇1)並將RGB顏色滑桿滑動到所需的值時,顏色視窗將顯示相應的顏色。
如果在開關關閉(設定為 0)時滑動滑動條,則視窗的顏色不會改變。它將保持原樣(即黑色)。
以上是如何使用OpenCV Python建立一個RGB顏色調色盤的滑動條?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在開發效率上優於C ,但C 在執行性能上更高。 1.Python的簡潔語法和豐富庫提高開發效率。 2.C 的編譯型特性和硬件控制提升執行性能。選擇時需根據項目需求權衡開發速度與執行效率。

pythonlistsarepartofthestAndArdLibrary,herilearRaysarenot.listsarebuilt-In,多功能,和Rused ForStoringCollections,而EasaraySaraySaraySaraysaraySaraySaraysaraySaraysarrayModuleandleandleandlesscommonlyusedDduetolimitedFunctionalityFunctionalityFunctionality。

每天學習Python兩個小時是否足夠?這取決於你的目標和學習方法。 1)制定清晰的學習計劃,2)選擇合適的學習資源和方法,3)動手實踐和復習鞏固,可以在這段時間內逐步掌握Python的基本知識和高級功能。

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。
