Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk membuat peluncur palet warna RGB menggunakan OpenCV Python?
Dalam OpenCV, anda boleh menggunakan fungsi cv2.reateTrackbar() untuk mencipta bar trek. Untuk mengakses nilai kedudukan bar jejak yang dipilih, kami menggunakan fungsi cv2.getTrackbarPos().
Menggunakan dua fungsi ini, kami mencipta tetingkap yang mengandungi bar penjejakan untuk warna R, G, B dan tetingkap warna untuk memaparkan warna yang dipilih. Dengan menukar kedudukan bar trek, warna RGB berubah antara 0 dan 255. Lihat sintaks kedua-dua fungsi ini di bawah.
cv2.createTrackbar(trackbar_name, window_name, default_value, max_value, callback_func) cv2.getTrackbarPos(trackbar_name, window_name)
trackbar_name - Ini ialah nama trackbar. Nama ini digunakan untuk mengakses nilai kedudukan bar jejak.
window_name - Ini adalah nama tetingkap yang dilampirkan bar penjejakan.
default_value - Nilai lalai yang ditetapkan untuk bar jejak.
maks_nilai - Nilai maksimum bar trek.
callback_func - Fungsi dilaksanakan apabila nilai bar trek berubah.
Untuk mencipta bar trek palet RGB, anda boleh mengikuti langkah yang diberikan di bawah -
Langkah pertama ialah mengimport perpustakaan yang diperlukan. Perpustakaan Python yang diperlukan ialah OpenCV dan NumPy. Pastikan anda memasangnya.
import cv2 import numpy as np
Seterusnya, tentukan fungsi panggil balik. Ia mengambil kedudukan bar jejak sebagai parameter lalai. Kami mentakrifkan fungsi ini untuk melakukan apa-apa.
def nothing(x): pass
Tentukan imej hitam dan buat tetingkap yang dipanggil Palet Warna Bar Jejak. Bar trek dan warna akan muncul dalam tetingkap ini.
img = np.zeros((300,650,3), np.uint8) window_name = 'Trackbar Color Palette' cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE)
Buat bar jejak untuk perubahan warna dengan semua lima parameter. Nilai bar jejak berjulat dari 0 hingga 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)
Dapatkan kedudukan bar jejak semasa untuk ketiga-tiga RGB warna.
r = cv2.getTrackbarPos('R',window_name) g = cv2.getTrackbarPos('G',window_name) b = cv2.getTrackbarPos('B',window_name)
Tetingkap imej berwarna dikemas kini dengan warna di atas.
img[:] = [b,g,r]
Kini menunjukkan warna nilai bar trek yang dipilih dalam tetingkap warna.
while(True): cv2.imshow(window_name,img) k = cv2.waitKey(1) & 0xFF if k == ord('q'): break
Dalam program Python di bawah, kami mencipta tetingkap sebagai palet. Kami mencipta tiga bar trek untuk warna R, G dan B. Luncurkan peluncur untuk memaparkan warna yang sepadan dalam tetingkap warna.
# 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()
Apabila anda menjalankan program di atas, anda akan melihat tetingkap Output berikut. Untuk menutup tetingkap output, tekan butang "q".
Nilai lalai untuk ketiga-tiga bar trek ialah sifar dan warna tetingkap adalah hitam. Luncurkan peluncur untuk melihat warna yang sepadan dalam tetingkap warna.
Dalam program ini kami mencipta tetingkap sebagai palet dengan butang togol.
Kami mencipta empat bar trek, tiga untuk warna R, G, B dan satu untuk butang togol.
Apabila butang suis HIDUP, hanya warna dalam tetingkap warna dipaparkan. Luncurkan peluncur dan warna yang sepadan akan dipaparkan dalam tetingkap warna.
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()
Apabila anda menjalankan program di atas, ia akan memaparkan tetingkap output berikut. Untuk menutup tetingkap output, tekan butang "q".
Nilai lalai untuk semua bar trek ialah 0. Warna tingkap adalah hitam. Apabila anda menghidupkan suis (pilih 1) dan luncurkan peluncur warna RGB ke nilai yang dikehendaki, tetingkap warna akan memaparkan warna yang sepadan.
Jika anda meluncurkan peluncur apabila suis dimatikan (ditetapkan kepada 0), warna tetingkap tidak akan berubah. Ia akan kekal seperti sedia ada (iaitu hitam).
Atas ialah kandungan terperinci Bagaimana untuk membuat peluncur palet warna RGB menggunakan OpenCV Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!