CameraServer’ı kullanma
CameraServer’dan Çerçeveleri Yakalama
WPILibPi görüntüsü, kendi görüntü işleme sisteminizi oluşturmak için gerekli tüm kitaplıklarla birlikte gelir. Geçerli kareyi kameradan almak için CameraServer kitaplığını kullanabilirsiniz. CameraServer hakkında bilgi için : ref: docs / software / vision-processing / Introduction / cameraserver-class: Read and Process Video: CameraServer Class.
from cscore import CameraServer
import cv2
import numpy as np
CameraServer.enableLogging()
camera = CameraServer.startAutomaticCapture()
camera.setResolution(width, height)
sink = cs.getVideo()
while True:
time, input_img = cvSink.grabFrame(input_img)
if time == 0: # There is an error
continue
Not
OpenCV, görüntüde geçmiş nedenlerden dolayı RGB değil BGR olarak okur. RGB olarak değiştirmek istiyorsanız, cv2.cvtColor
kullanın.
Aşağıda CameraServer’dan alınabilecek bir görüntü örneği verilmiştir.
CameraServer’a çerçeve gönderme
Bazen, hata ayıklama amacıyla veya Shuffleboard gibi bir pano uygulamasında görüntülemek için işlenmiş video karelerini CameraServer örneğine geri göndermek isteyebilirsiniz.
#
# CameraServer initialization code here
#
output = cs.putVideo("Name", width, height)
while True:
time, input_img = cvSink.grabFrame(input_img)
if time == 0: # There is an error
output.notifyError(sink.getError())
continue
#
# Insert processing code here
#
output.putFrame(processed_img)
Örnek olarak, işleme kodu hedefi kırmızıyla özetleyebilir ve hata ayıklama amacıyla köşeleri sarı olarak gösterebilir.
Aşağıda, CameraServer’a geri gönderilecek ve Driver Station bilgisayarında görüntülenecek tamamen işlenmiş bir görüntü örneği bulunmaktadır.