00001
00002
00003 #ifndef _JAFAR_STEREOPIXEL_STEREOPIXEL_HPP_
00004 #define _JAFAR_STEREOPIXEL_STEREOPIXEL_HPP_
00005
00006 #include <libstereopixel.h>
00007
00008
00009 #include <calife/Image3d.hpp>
00010
00011 namespace jafar {
00012 namespace image {
00013 class Image;
00014 }
00015 namespace jstereopixel {
00020 class StereoPixel {
00021 public:
00032 StereoPixel(int reduction, SP_TYPE_CORRELATION type_correlation = SP_CORRELATION_ZNCC, int windowHeight = 7, int windowWidth = 7);
00033 ~StereoPixel();
00034 public:
00038 void loadStereoParam(std::string const& filename);
00042 void loadLeftParam(std::string const& filename);
00043
00052 void correlationFor(const jafar::image::Image& left, const jafar::image::Image& right, int previous_reduction = 1);
00053
00059 jafar::calife::Image3d* reconstruction3D();
00060 void reconstruction3D_on_image(jafar::calife::Image3d &);
00061
00062 int countCorrelated();
00063 void printRes() const;
00064
00065 image::Image* getJfrImageForDisparity();
00066 void getJfrImageForDisparity(image::Image* image);
00071 float disparityAt( unsigned int _x, unsigned int _y );
00072
00073
00077 double* getMatIntrinsequeRectifiee()
00078 {
00079 return mat_intrinseque_rectifiee;
00080 };
00081
00082 private:
00083 SP_TYPE_CORRELATION m_type_correlation;
00084 int m_windowHeight, m_windowWidth;
00085 SP_CORRELATION_RESULTS* m_correlation_results;
00086 double mat_intrinseque[16];
00087 double mat_intrinseque_rectifiee[16];
00088 double baseline;
00089 double rect_2_cam[9];
00090 int m_reduction;
00091 double m_scale;
00092 SP_IMAGES_SIZES* m_images_sizes;
00093 };
00094 }
00095 }
00096
00097 #endif