Factoring out camera_params.proto.
Change-Id: Idf886f9cb33764d505d5cff11ca766cea96d2024
diff --git a/y2017/vision/BUILD b/y2017/vision/BUILD
index b70e67f..c7b4b7e 100644
--- a/y2017/vision/BUILD
+++ b/y2017/vision/BUILD
@@ -20,6 +20,9 @@
proto_cc_library(
name = 'vision_config',
src = 'vision_config.proto',
+ deps = [
+ '//aos/vision/image:camera_params',
+ ],
)
cc_binary(
diff --git a/y2017/vision/target_finder.cc b/y2017/vision/target_finder.cc
index e39fe73..1f2c46d 100644
--- a/y2017/vision/target_finder.cc
+++ b/y2017/vision/target_finder.cc
@@ -105,7 +105,6 @@
aos::vision::RangeImage TargetFinder::Threshold(aos::vision::ImagePtr image) {
return aos::vision::DoThreshold(image, [&](aos::vision::PixelRef &px) {
if (px.g > 88) {
- return true;
uint8_t min = std::min(px.b, px.r);
uint8_t max = std::max(px.b, px.r);
if (min >= px.g || max >= px.g) return false;
diff --git a/y2017/vision/target_sender.cc b/y2017/vision/target_sender.cc
index 548d01d..8eb13f5 100644
--- a/y2017/vision/target_sender.cc
+++ b/y2017/vision/target_sender.cc
@@ -2,6 +2,7 @@
#include <google/protobuf/text_format.h>
#include <stdio.h>
#include <stdlib.h>
+#include <sys/stat.h>
#include <fstream>
#include <iostream>
#include <memory>
@@ -76,13 +77,9 @@
std::ofstream ofst_;
};
-ImageFormat GetImageFormat(const CameraSettings ¶ms) {
- return ImageFormat{params.width(), params.height()};
-}
-
class ImageSender : public ImageStreamEvent {
public:
- ImageSender(camera::CameraParams params, GameSpecific game_cfg,
+ ImageSender(aos::vision::CameraParams params, GameSpecific game_cfg,
const std::string &fname, const std::string &ipadder, int port)
: ImageStreamEvent(fname, params),
game_cfg_(game_cfg),
@@ -181,17 +178,11 @@
private:
};
-void RunCamera(CameraSettings settings, GameSpecific game_cfg,
+void RunCamera(aos::vision::CameraParams settings, GameSpecific game_cfg,
const std::string &device, const std::string &ip_addr,
int port) {
printf("Creating camera (%dx%d).\n", settings.width(), settings.height());
- camera::CameraParams params = {settings.width(),
- settings.height(),
- settings.exposure(),
- settings.brightness(),
- 0,
- (int32_t)settings.fps()};
- ImageSender strm(params, game_cfg, device, ip_addr, port);
+ ImageSender strm(settings, game_cfg, device, ip_addr, port);
aos::events::EpollLoop loop;
loop.Add(strm.GetTCPServ());
diff --git a/y2017/vision/vision_config.proto b/y2017/vision/vision_config.proto
index 0bb7279..5501507 100644
--- a/y2017/vision/vision_config.proto
+++ b/y2017/vision/vision_config.proto
@@ -1,31 +1,9 @@
syntax = "proto2";
+import "aos/vision/image/camera_params.proto";
+
package y2017.vision;
-// Stores configuration for camera related settings and specs.
-message CameraSettings {
- // The focal length of the camera in pixels.
- optional double focal_length = 1 [default = 1418.6];
-
- // Width of the image.
- optional int32 width = 2 [default = 1280];
-
- // Height of the image.
- optional int32 height = 3 [default = 960];
-
- // Exposure setting.
- optional int32 exposure = 4 [default = 10];
-
- // Brightness setting.
- optional int32 brightness = 5 [default = 128];
-
- // Hardware gain multiplier on pixel values.
- optional double gain = 6 [default = 1.0];
-
- // Frames per second to run camera.
- optional double fps = 7 [default = 30.0];
-}
-
message GameSpecific {
// Needs more woojy.
optional int32 woojy = 1;
@@ -51,9 +29,9 @@
// Map robot name to the robot dependent configuration.
map<string, RobotConfig> robot_configs = 1;
- // Parameters for camera bringup.
- optional CameraSettings camera_params = 2;
+ // Year independent camera parameters.
+ optional aos.vision.CameraParams camera_params = 3;
// Parameters for this specific game
- optional GameSpecific game_params = 3;
+ optional GameSpecific game_params = 4;
}