#include <cameraserver/CameraServer.h>// Start automatic capturefrc::CameraServer::StartAutomaticCapture();// With device numberfrc::CameraServer::StartAutomaticCapture(0);// With name and devicecs::UsbCamera camera = frc::CameraServer::StartAutomaticCapture("Front", 0);
Configure camera after starting automatic capture.
import edu.wpi.first.cscore.UsbCamera;UsbCamera camera = CameraServer.startAutomaticCapture();// Set resolutioncamera.setResolution(320, 240);// Set frameratecamera.setFPS(30);// Set brightnesscamera.setBrightness(50);// Set exposurecamera.setExposureManual(20);// orcamera.setExposureAuto();// Set white balancecamera.setWhiteBalanceManual(4000);// orcamera.setWhiteBalanceAuto();
cs::UsbCamera camera = frc::CameraServer::StartAutomaticCapture();camera.SetResolution(320, 240);camera.SetFPS(30);camera.SetBrightness(50);camera.SetExposureManual(20);camera.SetWhiteBalanceManual(4000);
import edu.wpi.first.cameraserver.CameraServer;import edu.wpi.first.cscore.CvSink;import edu.wpi.first.cscore.CvSource;import edu.wpi.first.cscore.UsbCamera;import org.opencv.core.Mat;import org.opencv.imgproc.Imgproc;public class VisionThread extends Thread { @Override public void run() { // Get the camera UsbCamera camera = CameraServer.startAutomaticCapture(); camera.setResolution(320, 240); // Get a CvSink to grab frames CvSink cvSink = CameraServer.getVideo(); // Create a CvSource to stream processed frames CvSource outputStream = CameraServer.putVideo("Processed", 320, 240); // Mats for processing Mat source = new Mat(); Mat output = new Mat(); while (!Thread.interrupted()) { // Grab a frame if (cvSink.grabFrame(source) == 0) { // Error occurred, get error message outputStream.notifyError(cvSink.getError()); continue; } // Process frame (example: convert to grayscale) Imgproc.cvtColor(source, output, Imgproc.COLOR_BGR2GRAY); // Output processed frame outputStream.putFrame(output); } }}// Start vision thread in robotInit()@Overridepublic void robotInit() { new VisionThread().start();}
// Front camera on port 1181 (default)UsbCamera frontCamera = CameraServer.startAutomaticCapture("Front", 0);// Back camera on port 1182UsbCamera backCamera = new UsbCamera("Back", 1);MjpegServer backServer = new MjpegServer("Back Server", 1182);backServer.setSource(backCamera);// Access:// Front: http://roborio-TEAM-frc.local:1181/stream.mjpg// Back: http://roborio-TEAM-frc.local:1182/stream.mjpg
import edu.wpi.first.cscore.VideoSource;// Get camera by nameVideoSource camera = CameraServer.getVideo("Front Camera");// Get default cameraVideoSource defaultCam = CameraServer.getVideo();
// Create server on custom portMjpegServer server = new MjpegServer("Custom", 5800);server.setSource(camera);// Access at:// http://roborio-TEAM-frc.local:5800/stream.mjpg
import edu.wpi.first.wpilibj.shuffleboard.*;// Camera automatically appears in ShuffleboardCameraServer.startAutomaticCapture();// Or add to specific tabShuffleboardTab tab = Shuffleboard.getTab("Vision");tab.add("Camera", camera);
import edu.wpi.first.cscore.UsbCamera;import edu.wpi.first.cscore.UsbCameraInfo;// List all USB camerasUsbCameraInfo[] cameras = UsbCamera.enumerateUsbCameras();for (UsbCameraInfo info : cameras) { System.out.printf("Camera %d: %s at %s%n", info.dev, info.name, info.path);}