24 #ifndef __FIREVISION_STEREO_TRICLOPS_H_
25 #define __FIREVISION_STEREO_TRICLOPS_H_
27 #include <fvstereo/stereo_processor.h>
28 #include <sys/types.h>
30 namespace firevision {
35 class Bumblebee2Camera;
37 class TriclopsStereoProcessorData;
38 class RectificationLutInfoBlock;
44 const char *context_file);
48 virtual unsigned int output_image_width();
49 virtual unsigned int output_image_height();
50 virtual bool subpixel_interpolation();
51 virtual bool edge_correlation();
52 virtual bool lowpass();
53 virtual int disparity_range_min();
54 virtual int disparity_range_max();
55 virtual unsigned int edge_masksize();
56 virtual unsigned int stereo_masksize();
57 virtual bool surface_validation();
58 virtual bool texture_validation();
59 virtual unsigned char disparity_mapping_min();
60 virtual unsigned char disparity_mapping_max();
61 virtual bool disparity_mapping();
63 virtual void set_output_image_size(
unsigned int width,
unsigned int height);
64 virtual void set_subpixel_interpolation(
bool enabled);
65 virtual void set_edge_correlation(
bool enabled);
66 virtual void set_lowpass(
bool enabled);
67 virtual void set_disparity_range(
int min,
int max);
68 virtual void set_edge_masksize(
unsigned int mask_size);
69 virtual void set_stereo_masksize(
unsigned int mask_size);
70 virtual void set_surface_validation(
bool enabled);
71 virtual void set_texture_validation(
bool enabled);
72 virtual void set_disparity_mapping_range(
unsigned char min,
unsigned char max);
73 virtual void set_disparity_mapping(
bool enabled);
75 virtual bool get_xyz(
unsigned int px,
unsigned int py,
76 float *x,
float *y,
float *z);
78 virtual bool get_world_xyz(
unsigned int px,
unsigned int py,
79 float *x,
float *y,
float *z);
81 virtual void set_raw_buffer(
unsigned char *raw16_buffer);
82 virtual void preprocess_stereo();
83 virtual void calculate_disparity(
ROI *roi = 0);
84 virtual void calculate_yuv(
bool both =
false);
85 virtual unsigned char * disparity_buffer();
86 virtual size_t disparity_buffer_size()
const;
87 virtual unsigned char * yuv_buffer();
88 virtual unsigned char * auxiliary_yuv_buffer();
90 void generate_rectification_lut(
const char *lut_file);
91 bool verify_rectification_lut(
const char *lut_file);
93 virtual void getall_world_xyz(
float ***buffer,
int hoff,
int voff,
int width,
int height,
float *settings);
96 void get_triclops_context_from_camera();
97 void deinterlace_green(
unsigned char* src,
100 unsigned int height);
102 void create_buffers();
103 void setup_triclops();
108 TriclopsStereoProcessorData *data;
110 unsigned char *buffer_rgb;
111 unsigned char *buffer_green;
112 unsigned char *buffer_rgb_left;
113 unsigned char *buffer_rgb_right;
114 unsigned char *buffer_rgb_center;
115 unsigned char *buffer_yuv_left;
116 unsigned char *buffer_yuv_right;
117 unsigned char *buffer_yuv_center;
118 unsigned char *_buffer;
119 unsigned char *buffer_deinterlaced;
120 unsigned char *buffer_raw16;
123 unsigned int _height;
125 unsigned int _output_image_width;
126 unsigned int _output_image_height;