Jadual Kandungan
Tatabahasa
Parameter
Langkah
Contoh 2
Output
Rumah pembangunan bahagian belakang Tutorial Python Bagaimana untuk membuat peluncur palet warna RGB menggunakan OpenCV Python?

Bagaimana untuk membuat peluncur palet warna RGB menggunakan OpenCV Python?

Aug 30, 2023 pm 04:33 PM

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.

Tatabahasa

cv2.createTrackbar(trackbar_name, window_name, default_value, max_value, callback_func)
cv2.getTrackbarPos(trackbar_name, window_name)
Salin selepas log masuk

Parameter

  • 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.

Langkah

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
Salin selepas log masuk

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
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

Tetingkap imej berwarna dikemas kini dengan warna di atas.

img[:] = [b,g,r]
Salin selepas log masuk

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
Salin selepas log masuk

Contoh 1

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()
Salin selepas log masuk

Output

Apabila anda menjalankan program di atas, anda akan melihat tetingkap Output berikut. Untuk menutup tetingkap output, tekan butang "q".

如何使用OpenCV Python创建一个RGB颜色调色板的滑动条?

Nilai lalai untuk ketiga-tiga bar trek ialah sifar dan warna tetingkap adalah hitam. Luncurkan peluncur untuk melihat warna yang sepadan dalam tetingkap warna.

Contoh 2

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()
Salin selepas log masuk

Output

Apabila anda menjalankan program di atas, ia akan memaparkan tetingkap output berikut. Untuk menutup tetingkap output, tekan butang "q".

如何使用OpenCV Python创建一个RGB颜色调色板的滑动条?

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Apr 01, 2025 pm 05:09 PM

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam? Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam? Apr 02, 2025 am 07:18 AM

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Bagaimana untuk mengelakkan dikesan oleh penyemak imbas apabila menggunakan fiddler di mana-mana untuk membaca lelaki-dalam-tengah? Bagaimana untuk mengelakkan dikesan oleh penyemak imbas apabila menggunakan fiddler di mana-mana untuk membaca lelaki-dalam-tengah? Apr 02, 2025 am 07:15 AM

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Bagaimana cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Bagaimana cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Apr 01, 2025 pm 11:15 PM

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bagaimanakah uvicorn terus mendengar permintaan http tanpa serving_forever ()? Bagaimanakah uvicorn terus mendengar permintaan http tanpa serving_forever ()? Apr 01, 2025 pm 10:51 PM

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Bagaimana secara dinamik membuat objek melalui rentetan dan panggil kaedahnya dalam Python? Bagaimana secara dinamik membuat objek melalui rentetan dan panggil kaedahnya dalam Python? Apr 01, 2025 pm 11:18 PM

Di Python, bagaimana untuk membuat objek secara dinamik melalui rentetan dan panggil kaedahnya? Ini adalah keperluan pengaturcaraan yang biasa, terutamanya jika perlu dikonfigurasikan atau dijalankan ...

See all articles