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.enable_logging()
camera = CameraServer.start_automatic_capture()
camera.set_resolution(width, height)
sink = CameraServer.get_video()
input_img = np.zeros(shape=(height, width, 3), dtype=np.uint8)
while True:
time, input_img = sink.grab_frame(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¶
Sometimes, you may want to send processed video frames back to the CameraServer instance for debugging purposes, or viewing in a dashboard application like Elastic.
#
# CameraServer initialization code here
#
output = CameraServer.put_video("Name", width, height)
input_img = np.zeros(shape=(height, width, 3), dtype=np.uint8)
while True:
time, input_img = sink.grab_frame(input_img)
if time == 0: # There is an error
output.notify_error(sink.get_error())
continue
#
# Insert processing code here
#
output.put_frame(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.
