working camera process

it need more work with integration
This commit is contained in:
ori
2019-04-29 14:15:53 -07:00
parent 6ee31a9d0c
commit d073f6fcd2
2 changed files with 16 additions and 8 deletions

View File

@@ -42,6 +42,8 @@ class CamerasHandler:
camera = cscore.UsbCamera(name=device_name, dev=device.dev)
camera.setPixelFormat(pixelFormat=camera.enumerateVideoModes()[0].pixelFormat) #TODO if dictionary is empy do this else take from dictionary
camera.setFPS(camera.enumerateVideoModes()[0].fps)
camera.setResolution(width=camera.enumerateVideoModes()[0].width,height=camera.enumerateVideoModes()[0].height)
cameras[device_name] = camera

View File

@@ -4,9 +4,10 @@ import networktables
import cv2
import numpy
from cscore import CameraServer
from .CamerasHandler import CamerasHandler
from CamerasHandler import CamerasHandler
from app.classes.SettingsManager import SettingsManager
import time
import json
class VisionHandler:
@@ -91,7 +92,8 @@ class VisionHandler:
def mode_listener(table, key, value, is_new):
pass
image = numpy.zeros(shape=(0, 0, 3), dtype=numpy.uint8)
jsonn = json.loads(camera.getConfigJson())
image = numpy.zeros(shape=(jsonn['width'], jsonn['height'], 3), dtype=numpy.uint8)
table = NetworkTables.getTable("/Chameleon-Vision/" + camera.getInfo().name)
table.addEntryListenerEx(pipeline_listener, key="Pipeline",
@@ -99,17 +101,21 @@ class VisionHandler:
table.addEntryListenerEx(mode_listener, key="Driver_Mode",
flags=networktables.NetworkTablesInstance.NotifyFlags.UPDATE)
change_camera_values()
cv_sink = CameraServer.getInstance().getVideo(camera=camera)
cs = CameraServer.getInstance()
cv_sink = cs.getVideo(camera=camera)
cv_publish = cs.putVideo(name='ds;fjkl',width=jsonn['width'],height=jsonn['height'])
while True:
start = time.time()
_, image = cv_sink.grabFrame(image)
# hsv_image = self._hsv_threshold()
filtered_contours = None
if table.getBoolean("Driver_Mode", False):
# if table.getBoolean("Driver_Mode", False):
#contours = self.find_contours(hsv_image)
# filtered_contours = self.filter_contours(contours)
pass
# pass
# image = self.draw_image(input_image=hsv_image, is_binary=False, rectangles=[])
# stream.putFrame(image)
cv_publish.putFrame(image)
end = time.time()
print(1/(end-start))