Go to the documentation of this file.
33 #ifndef FISHEYE_STITCHER_HPP
34 #define FISHEYE_STITCHER_HPP
42 #include <opencv2/imgcodecs.hpp>
43 #include <opencv2/imgproc.hpp>
44 #include <opencv2/highgui.hpp>
45 #include <opencv2/calib3d.hpp>
46 #include "opencv2/stitching/detail/seam_finders.hpp"
47 #include <opencv2/core/utility.hpp>
49 #define MAX_FOVD 195.0f
52 #define P1_ -7.5625e-17
53 #define P2_ 1.9589e-13
54 #define P3_ -1.8547e-10
55 #define P4_ 6.1997e-08
56 #define P5_ -6.9432e-05
66 bool enb_light_compen,
bool enb_refine_align,
67 bool save_unwarped, std::string map_path);
69 cv::Mat
stitch(
const cv::Mat& image1,
const cv::Mat& image2,
77 cv::Mat
unwarp(
const cv::Mat &in_img);
78 std::tuple<double, double>
fish2Eqt(
const double x_dest,
83 cv::Mat
deform(
const cv::Mat &in_img);
91 const std::string &img_window,
92 const bool disable_display);
94 std::tuple<std::vector<cv::Point2f>, std::vector<cv::Point2f> >
96 const cv::Point2f &matchLocRight,
const int row_start,
97 const int row_end,
const int p_wid,
const int p_x1,
98 const int p_x2,
const int p_x2_ref);
100 cv::Mat
blendRight(
const cv::Mat &bg1,
const cv::Mat &bg2);
101 cv::Mat
blendLeft(
const cv::Mat &bg1,
const cv::Mat &bg2);
102 cv::Mat
blend(
const cv::Mat &left_img,
const cv::Mat &right_img_aligned);
136 #endif // FISHEYE_STITCHER_HPP
cv::Mat compenLightFO(const cv::Mat &in_img)
Fisheye Light Fall-off Compensation.
bool m_disable_light_compen
cv::Mat blendLeft(const cv::Mat &bg1, const cv::Mat &bg2)
Ramp blending on the left patch.
void genScaleMap()
Fisheye Light Fall-off Compensation: Scale_Map Construction.
cv::Point2f findMatchLoc(const cv::Mat &Ref, const cv::Mat &Tmpl, const std::string &img_window, const bool disable_display)
Adaptive Alignment: Norm XCorr.
std::tuple< double, double > fish2Eqt(const double x_dest, const double y_dest, const double W_rad)
Convert fisheye-vertical to equirectangular (reference: Panotool)
void createMask()
Mask creation for cropping image data inside the FOVD circle.
cv::Mat deform(const cv::Mat &in_img)
Rigid Moving Least Squares Interpolation.
cv::Mat unwarp(const cv::Mat &in_img)
Fisheye Unwarping.
void createBlendMask()
Create binary mask for blending.
void fish2Map()
Map 2D fisheye image to 2D projected sphere.
std::vector< int > m_blend_post
cv::Mat blend(const cv::Mat &left_img, const cv::Mat &right_img_aligned)
Blending aligned images.
cv::Mat blendRight(const cv::Mat &bg1, const cv::Mat &bg2)
Ramp blending on the right patch.
std::tuple< std::vector< cv::Point2f >, std::vector< cv::Point2f > > createControlPoints(const cv::Point2f &matchLocLeft, const cv::Point2f &matchLocRight, const int row_start, const int row_end, const int p_wid, const int p_x1, const int p_x2, const int p_x2_ref)
Construct control points for affine2D.
FisheyeStitcher(int width, int height, float in_fovd, bool enb_light_compen, bool enb_refine_align, bool save_unwarped, std::string map_path)
cv::Mat stitch(const cv::Mat &image1, const cv::Mat &image2, uint16_t p_wid, uint16_t p_x1, uint16_t p_x2, uint16_t row_start, uint16_t row_end)
single frame stitching
jsk_perception
Author(s): Manabu Saito, Ryohei Ueda
autogenerated on Fri May 16 2025 03:11:17