├── .gitignore ├── CMakeLists.txt ├── README.txt ├── changelog.txt ├── documentation └── html │ ├── ami__pol_8cpp_source.html │ ├── ami__pol_8h_source.html │ ├── annotated.html │ ├── annotated.js │ ├── bc_s.png │ ├── bdwn.png │ ├── classami_1_1image-members.html │ ├── classami_1_1image.html │ ├── classami_1_1image.js │ ├── classami_1_1image__draw-members.html │ ├── classami_1_1image__draw.html │ ├── classami_1_1image__draw.js │ ├── classami_1_1image__primitives-members.html │ ├── classami_1_1image__primitives.html │ ├── classami_1_1image__primitives.js │ ├── classami_1_1lens__distortion__model-members.html │ ├── classami_1_1lens__distortion__model.html │ ├── classami_1_1lens__distortion__model.js │ ├── classami_1_1line-members.html │ ├── classami_1_1line.html │ ├── classami_1_1line.js │ ├── classami_1_1line__points-members.html │ ├── classami_1_1line__points.html │ ├── classami_1_1line__points.js │ ├── classami_1_1point2d-members.html │ ├── classami_1_1point2d.html │ ├── classami_1_1point2d.js │ ├── classami_1_1subpixel__image__contours-members.html │ ├── classami_1_1subpixel__image__contours.html │ ├── classami_1_1subpixel__image__contours.js │ ├── classes.html │ ├── closed.png │ ├── dir_33850087c5288a5967083bef9325cba7.html │ ├── dir_33850087c5288a5967083bef9325cba7.js │ ├── dir_7138ddaf3c712e3b02c1e4cc2dc3235b.html │ ├── dir_7138ddaf3c712e3b02c1e4cc2dc3235b.js │ ├── dir_8897c8bb118eaf3f5517261118c93013.html │ ├── dir_8897c8bb118eaf3f5517261118c93013.js │ ├── dir_b286ce078e05d6b52150c4954612175f.html │ ├── dir_b286ce078e05d6b52150c4954612175f.js │ ├── dir_b78159e9615f0019e7c530e2ed471256.html │ ├── dir_b78159e9615f0019e7c530e2ed471256.js │ ├── dir_ca19a52f84eafaef0dedf81048938e52.html │ ├── dir_ca19a52f84eafaef0dedf81048938e52.js │ ├── dir_d3a77bb22394607dec69718f73636396.html │ ├── dir_d3a77bb22394607dec69718f73636396.js │ ├── dir_ebe14d1658c4771d1aef8778c79ea0ea.html │ ├── dir_ebe14d1658c4771d1aef8778c79ea0ea.js │ ├── doxygen.css │ ├── doxygen.png │ ├── dynsections.js │ ├── files.html │ ├── files.js │ ├── filters_8h.html │ ├── filters_8h.js │ ├── filters_8h_source.html │ ├── ftv2blank.png │ ├── ftv2cl.png │ ├── ftv2doc.png │ ├── ftv2folderclosed.png │ ├── ftv2folderopen.png │ ├── ftv2lastnode.png │ ├── ftv2link.png │ ├── ftv2mlastnode.png │ ├── ftv2mnode.png │ ├── ftv2mo.png │ ├── ftv2node.png │ ├── ftv2ns.png │ ├── ftv2plastnode.png │ ├── ftv2pnode.png │ ├── ftv2splitbar.png │ ├── ftv2vertline.png │ ├── functions.html │ ├── functions_func.html │ ├── functions_vars.html │ ├── globals.html │ ├── globals_func.html │ ├── image_8h.html │ ├── image_8h.js │ ├── image_8h_source.html │ ├── image__draw_8h.html │ ├── image__draw_8h.js │ ├── image__draw_8h_source.html │ ├── image__primitives_8h.html │ ├── image__primitives_8h.js │ ├── image__primitives_8h_source.html │ ├── index.html │ ├── io__png_8cpp_source.html │ ├── io__png_8h_source.html │ ├── jquery.js │ ├── lens__distortion_8cpp.html │ ├── lens__distortion_8cpp.js │ ├── lens__distortion_8cpp_source.html │ ├── lens__distortion_8h.html │ ├── lens__distortion_8h.js │ ├── lens__distortion_8h_source.html │ ├── lens__distortion__correction__2p__iterative__optimization_8cpp.html │ ├── lens__distortion__correction__2p__iterative__optimization_8cpp.js │ ├── lens__distortion__correction__2p__iterative__optimization_8cpp_source.html │ ├── lens__distortion__model_8cpp.html │ ├── lens__distortion__model_8cpp.js │ ├── lens__distortion__model_8cpp_source.html │ ├── lens__distortion__model_8h.html │ ├── lens__distortion__model_8h.js │ ├── lens__distortion__model_8h_source.html │ ├── lens__distortion__procedures_8cpp_source.html │ ├── lens__distortion__procedures_8h_source.html │ ├── line_8h.html │ ├── line_8h.js │ ├── line_8h_source.html │ ├── line__extraction_8cpp_source.html │ ├── line__extraction_8h_source.html │ ├── line__points_8cpp.html │ ├── line__points_8cpp.js │ ├── line__points_8cpp_source.html │ ├── line__points_8h.html │ ├── line__points_8h.js │ ├── line__points_8h_source.html │ ├── logo_ctim_iris_completo.png │ ├── logo_ctim_iris_completo_r.png │ ├── nav_f.png │ ├── nav_g.png │ ├── nav_h.png │ ├── navtree.css │ ├── navtree.js │ ├── navtreeindex0.js │ ├── navtreeindex1.js │ ├── open.png │ ├── point2d_8h.html │ ├── point2d_8h.js │ ├── point2d_8h_source.html │ ├── resize.js │ ├── search │ ├── all_0.html │ ├── all_0.js │ ├── all_1.html │ ├── all_1.js │ ├── all_10.html │ ├── all_10.js │ ├── all_11.html │ ├── all_11.js │ ├── all_2.html │ ├── all_2.js │ ├── all_3.html │ ├── all_3.js │ ├── all_4.html │ ├── all_4.js │ ├── all_5.html │ ├── all_5.js │ ├── all_6.html │ ├── all_6.js │ ├── all_7.html │ ├── all_7.js │ ├── all_8.html │ ├── all_8.js │ ├── all_9.html │ ├── all_9.js │ ├── all_a.html │ ├── all_a.js │ ├── all_b.html │ ├── all_b.js │ ├── all_c.html │ ├── all_c.js │ ├── all_d.html │ ├── all_d.js │ ├── all_e.html │ ├── all_e.js │ ├── all_f.html │ ├── all_f.js │ ├── classes_0.html │ ├── classes_0.js │ ├── classes_1.html │ ├── classes_1.js │ ├── classes_2.html │ ├── classes_2.js │ ├── classes_3.html │ ├── classes_3.js │ ├── classes_4.html │ ├── classes_4.js │ ├── close.png │ ├── files_0.html │ ├── files_0.js │ ├── files_1.html │ ├── files_1.js │ ├── files_2.html │ ├── files_2.js │ ├── files_3.html │ ├── files_3.js │ ├── files_4.html │ ├── files_4.js │ ├── functions_0.html │ ├── functions_0.js │ ├── functions_1.html │ ├── functions_1.js │ ├── functions_2.html │ ├── functions_2.js │ ├── functions_3.html │ ├── functions_3.js │ ├── functions_4.html │ ├── functions_4.js │ ├── functions_5.html │ ├── functions_5.js │ ├── functions_6.html │ ├── functions_6.js │ ├── functions_7.html │ ├── functions_7.js │ ├── functions_8.html │ ├── functions_8.js │ ├── functions_9.html │ ├── functions_9.js │ ├── functions_a.html │ ├── functions_a.js │ ├── functions_b.html │ ├── functions_b.js │ ├── functions_c.html │ ├── functions_c.js │ ├── functions_d.html │ ├── functions_d.js │ ├── functions_e.html │ ├── functions_e.js │ ├── mag_sel.png │ ├── nomatches.html │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ ├── variables_0.html │ ├── variables_0.js │ ├── variables_1.html │ ├── variables_1.js │ ├── variables_2.html │ └── variables_2.js │ ├── struct__io__png__err__s-members.html │ ├── struct__io__png__err__s.html │ ├── struct__io__png__err__s.js │ ├── subpixel__image__contours_8cpp.html │ ├── subpixel__image__contours_8cpp.js │ ├── subpixel__image__contours_8cpp_source.html │ ├── subpixel__image__contours_8h.html │ ├── subpixel__image__contours_8h.js │ ├── subpixel__image__contours_8h_source.html │ ├── sync_off.png │ ├── sync_on.png │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ ├── tabs.css │ ├── utilities_8cpp_source.html │ └── utilities_8h_source.html ├── example └── building.png └── src ├── ami_filters └── filters.h ├── ami_image ├── image.h └── io_png │ ├── io_png.cpp │ └── io_png.h ├── ami_image_draw └── image_draw.h ├── ami_lens_distortion ├── lens_distortion.cpp ├── lens_distortion.h ├── lens_distortion_model.cpp ├── lens_distortion_model.h ├── lens_distortion_procedures.cpp └── lens_distortion_procedures.h ├── ami_pol ├── ami_pol.cpp └── ami_pol.h ├── ami_primitives ├── image_primitives.h ├── line.h ├── line_extraction.cpp ├── line_extraction.h ├── line_points.cpp ├── line_points.h ├── point2d.h ├── subpixel_image_contours.cpp └── subpixel_image_contours.h ├── ami_utilities ├── utilities.cpp └── utilities.h └── lens_distortion_correction_2p_iterative_optimization.cpp /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files 2 | *.slo 3 | *.lo 4 | *.o 5 | *.obj 6 | 7 | # Precompiled Headers 8 | *.gch 9 | *.pch 10 | 11 | # Compiled Dynamic libraries 12 | *.so 13 | *.dylib 14 | *.dll 15 | 16 | # Fortran module files 17 | *.mod 18 | *.smod 19 | 20 | # Compiled Static libraries 21 | *.lai 22 | *.la 23 | *.a 24 | *.lib 25 | 26 | # Executables 27 | *.exe 28 | *.out 29 | *.app 30 | 31 | /build/ -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.6) 2 | PROJECT(cameraLensCalibration C CXX) 3 | 4 | if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") 5 | set (CMAKE_CXX_FLAGS "--std=gnu++11 ${CMAKE_CXX_FLAGS}") 6 | endif () 7 | 8 | #SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) 9 | 10 | FIND_PACKAGE(PNG REQUIRED) 11 | 12 | file( 13 | GLOB_RECURSE 14 | files_header 15 | src/*.h 16 | ) 17 | file( 18 | GLOB_RECURSE 19 | files_cpp 20 | src/*.cpp 21 | ) 22 | 23 | add_executable(cameraLensCalibration ${files_header} ${files_cpp}) 24 | target_link_libraries(cameraLensCalibration 25 | ${PNG_LIBRARIES} 26 | ) 27 | target_include_directories(cameraLensCalibration PUBLIC 28 | ${PNG_INCLUDE_DIRS} 29 | ) 30 | -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | % Automatic Lens Distortion Correction Using Two Parameter Polynomial and Division Models with iterative optimization 2 | 3 | # ABOUT 4 | 5 | * Author : Miguel Alemán-Flores 6 | Luis Álvarez 7 | Luis Gómez 8 | Daniel Santana-Cedrés 9 | * Copyright : (C) 2009-2014 IPOL Image Processing On Line http://www.ipol.im/ 10 | * License : CC Creative Commons "Attribution-NonCommercial-ShareAlike" 11 | see http://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.en 12 | 13 | # OVERVIEW 14 | 15 | This source code provides an implementation of a lens distortion correction algorithm 16 | algorithm as described in IPOL 17 | 18 | http://www.ipol.im/pub/pre/130 19 | 20 | This program reads an input image and automatically estimates a 2 parameter 21 | polynomial or division lens distortion model, that it is used to correct image 22 | distortion, after an iterative optimization process. 23 | 24 | The programs produces 4 outputs: 25 | (1) The estimated distortion parameters. 26 | (2) An output image with the results of Canny Edge Detector. 27 | (3) An output image with the estimated distorted lines. 28 | (4) An output image where the distortion model is applied to correct the 29 | image distortion. 30 | 31 | # REQUIREMENTS 32 | 33 | The code is written in ANSI C, and should compile on any system with 34 | an ANSI C compiler. 35 | 36 | The libpng header and libraries are required on the system for 37 | compilation and execution. See http://www.libpng.org/pub/png/libpng.html 38 | 39 | MacOSX already provides libpng in versions before Montain Lion. 40 | However, if you have problems with png library, you can follow the next steps: 41 | - Install Hombrew (http://brew.hs) and run the commands: 42 | * brew doctor 43 | * brew update 44 | * brew install libpng 45 | * brew link libpng --force 46 | 47 | # COMPILATION 48 | 49 | We have checked our code on: 50 | - Fedora 11 (Leonidas) with GCC version 4.4.1-2 51 | - Ubuntu 14.04 LTS (trusty) with GCC version 4.8.2 52 | - Windows 7 with Cygwin 6.1 and GCC version 4.8.2 53 | - MacOSX 10.6.8 (Snow Leopard) Darwing Kernel version 10.8.0 wiht GCC version 4.2.1 54 | 55 | Simply use the provided makefile, with the command `make`. 56 | If you want to use the OpenMP library, please use `make OMP=1`. 57 | 58 | Alternatively, you can manually compile 59 | g++ -Wall -Wextra -O3 lens_distortion_correction_2p_iterative_optimization.cpp 60 | ami_primitives/subpixel_image_contours.cpp ami_lens_distortion/lens_distortion_procedures.cpp 61 | ami_primitives/line_extraction.cpp ami_lens_distortion/lens_distortion_model.cpp 62 | ami_primitives/line_points.cpp ami_image/io_png/io_png.cpp ami_lens_distortion/lens_distortion.cpp 63 | ami_utilities/utilities.cpp ami_pol/ami_pol.cpp 64 | -lpng -lm -o lens_distortion_correction_2p_iterative_optimization 65 | 66 | Or the following alternative compilation line for using the OpenMP library 67 | 68 | g++ -Wall -Wextra -O3 -fopenmp lens_distortion_correction_2p_iterative_optimization.cpp 69 | ami_primitives/subpixel_image_contours.cpp ami_lens_distortion/lens_distortion_procedures.cpp 70 | ami_primitives/line_extraction.cpp ami_lens_distortion/lens_distortion_model.cpp 71 | ami_primitives/line_points.cpp ami_image/io_png/io_png.cpp ami_lens_distortion/lens_distortion.cpp 72 | ami_utilities/utilities.cpp ami_pol/ami_pol.cpp 73 | -lpng -lm -o lens_distortion_correction_2p_iterative_optimization 74 | 75 | # USAGE 76 | 77 | This program takes 10 parameters: 78 | “exe_file input_directory output_directory high_threshold_Canny initial_distortion_parameter final_distortion_parameter distance_point_line_max_hough angle_point_orientation_max_difference type_of_lens_distortion_model center_optimization primitives_file” 79 | 80 | * 'exe_file ' : exe file (called ./lens_distortion_correction_2p_iterative_optimization) 81 | * 'input_directory' : input directory 82 | * 'output_directory' : output directory 83 | * 'high_threshold_Canny' : float value for the high threshold of the Canny method (between 0.7 and 1.0) 84 | * 'initial_distortion_parameter' : float value for the initial normalized distortion parameter (greater or equal to -0.5) 85 | * 'final_distortion_parameter' : float value for the final normalized distortion parameter (greater or equal to the initial value) 86 | * 'distance_point_line_max_hough' : maximum distance allowed between points and associated lines 87 | * 'angle_point_orientation_max_difference': maximum difference (in degrees) of the point orientation angle and the line angle 88 | * 'type_of_lens_distortion_model' : type of the lens distortion model for the correction of the distortion (pol or div) 89 | * 'center_optimization' : optimization of the center of the lens distortion model (True or False) 90 | 91 | 92 | # SOURCE CODE ORGANIZATION 93 | 94 | The source code is organized in the following folders : 95 | 96 | * 'ami_pol' : polynomial roots computation library. 97 | * 'ami_filters' : basic image filters including Gaussian convolution, gradient, 98 | Canny edge detector, etc. 99 | * 'ami_image' : objects and basic methods to manage images. 100 | * 'ami_image_draw' : basic procedure to draw primitives in an image. 101 | * 'ami_lens_distortion' : objects, methods and procedures to manage lens distortion models. 102 | * 'ami_primitives' : basic objects and methods to manage primitives (lines and points) 103 | * 'ami_utilities' : some auxilary macros and functions. 104 | * 'documentation' : doxygen documentation of the source code. 105 | * 'example' : example input image and results. 106 | 107 | # EXAMPLE 108 | 109 | You can test the program with the provided test image (building.png) in the 110 | following way: 111 | 112 | ./lens_distortion_correction_2p_iterative_optimization /data/input/ /data/output/ 0.8 0.0 3.0 3.0 10.0 div True 113 | 114 | Furthermore, you can compare your results with the results present inside the folder 'example' 115 | 116 | -------------------------------------------------------------------------------- /documentation/html/annotated.js: -------------------------------------------------------------------------------- 1 | var annotated = 2 | [ 3 | [ "ami", null, [ 4 | [ "image", "classami_1_1image.html", "classami_1_1image" ], 5 | [ "image_draw", "classami_1_1image__draw.html", "classami_1_1image__draw" ], 6 | [ "lens_distortion_model", "classami_1_1lens__distortion__model.html", "classami_1_1lens__distortion__model" ], 7 | [ "image_primitives", "classami_1_1image__primitives.html", "classami_1_1image__primitives" ], 8 | [ "line", "classami_1_1line.html", "classami_1_1line" ], 9 | [ "line_points", "classami_1_1line__points.html", "classami_1_1line__points" ], 10 | [ "point2d", "classami_1_1point2d.html", "classami_1_1point2d" ], 11 | [ "subpixel_image_contours", "classami_1_1subpixel__image__contours.html", "classami_1_1subpixel__image__contours" ] 12 | ] ], 13 | [ "_io_png_err_s", "struct__io__png__err__s.html", "struct__io__png__err__s" ] 14 | ]; -------------------------------------------------------------------------------- /documentation/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/bc_s.png -------------------------------------------------------------------------------- /documentation/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/bdwn.png -------------------------------------------------------------------------------- /documentation/html/classami_1_1image.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/classami_1_1image.html -------------------------------------------------------------------------------- /documentation/html/classami_1_1image.js: -------------------------------------------------------------------------------- 1 | var classami_1_1image = 2 | [ 3 | [ "iterator", "classami_1_1image.html#af27ab8440ebd73d21ec0434f4e293f2f", null ], 4 | [ "image", "classami_1_1image.html#a1f1e7d6cb7245fa08d68e0082b68391c", null ], 5 | [ "image", "classami_1_1image.html#a39fbeb547215d317e7888ac5af9b061f", null ], 6 | [ "image", "classami_1_1image.html#ab552ecfdbd18a9697fbb89c50c9553f4", null ], 7 | [ "image", "classami_1_1image.html#a653ce786751666271b0e86dfa6ca1d32", null ], 8 | [ "image", "classami_1_1image.html#a0c8aa7efec3f9e9ac0b966771324981b", null ], 9 | [ "image", "classami_1_1image.html#a572313dfa073a9f5109d59b7d66a7734", null ], 10 | [ "image", "classami_1_1image.html#a08be4803d35a0c66594f8df8ca5e1621", null ], 11 | [ "image", "classami_1_1image.html#acc4c9634e02d7fef6e722a3e954d66ce", null ], 12 | [ "image", "classami_1_1image.html#a8eeb2b270adb25b77ac54ad59c3388dc", null ], 13 | [ "~image", "classami_1_1image.html#a2fdab6b03687ecf6bd4eda5aec90f0b6", null ], 14 | [ "begin", "classami_1_1image.html#a155d5b6d5184b465e7337cca91380c1e", null ], 15 | [ "clear", "classami_1_1image.html#aaa344b24143551df56dcb86e345ce9f4", null ], 16 | [ "end", "classami_1_1image.html#a55df7904f14718e4c48fc59cb2ee9240", null ], 17 | [ "get_histogram", "classami_1_1image.html#a760649afa0099f411f0805fe9f72bff1", null ], 18 | [ "get_image", "classami_1_1image.html#aeec3a32897da949018f6d5236a12a7aa", null ], 19 | [ "get_roi", "classami_1_1image.html#a46d326a8f17704de36f9bde5dab67c19", null ], 20 | [ "get_roi_image", "classami_1_1image.html#a854420fe20ba836f4f6583b2dcca8e9f", null ], 21 | [ "get_roi_image", "classami_1_1image.html#a269808072c9fb32796595bbec3b0374b", null ], 22 | [ "get_value", "classami_1_1image.html#a6ad968cdfd9d1956c9e219847ce398b5", null ], 23 | [ "height", "classami_1_1image.html#afbd4e3a9dea75df85b6738b14288630f", null ], 24 | [ "hsv_to_rgb", "classami_1_1image.html#a01cad6473bf00a60b8096bb4755a7b56", null ], 25 | [ "imageMirrored", "classami_1_1image.html#a66962530e6bfa7c7f58da77648d56076", null ], 26 | [ "init", "classami_1_1image.html#abd72f281d1cc4f69ea92f654afa4aacc", null ], 27 | [ "linear_transform", "classami_1_1image.html#a980de85d1160bc431b9f6c5e9bef9f70", null ], 28 | [ "nChannels", "classami_1_1image.html#ae2ba6cd27eac36ac87bf6f1ba640b2b9", null ], 29 | [ "operator()", "classami_1_1image.html#abb9cd9e3ce12f9d8da4d264814332526", null ], 30 | [ "operator=", "classami_1_1image.html#a00f573022bd8e69a5c61f3372a8d35d2", null ], 31 | [ "operator[]", "classami_1_1image.html#af71991fe782d4fea2939379ad6dc4ad1", null ], 32 | [ "operator[]", "classami_1_1image.html#ad9334b5dfa67389de92020764326b56c", null ], 33 | [ "read", "classami_1_1image.html#a26370abafef955b1129eeb15103e65f5", null ], 34 | [ "resize", "classami_1_1image.html#a42447010fa2c6e93086db8de0c9c0c05", null ], 35 | [ "resize_no_omp", "classami_1_1image.html#a985eb3e5e7d7ff0f5e87742520b88e31", null ], 36 | [ "rgb_to_hsv", "classami_1_1image.html#a1de87be46608336f7d9ea55d87ba5811", null ], 37 | [ "roi_clear", "classami_1_1image.html#a29723ce53486cd8a9f8e8869b99ccc41", null ], 38 | [ "sampling", "classami_1_1image.html#a3195bb02e6d64e726fea7bf6499f8e25", null ], 39 | [ "set_nchannels", "classami_1_1image.html#aaa204f90e88c58b44ebf2a75fa63a568", null ], 40 | [ "set_roi", "classami_1_1image.html#ae2339e833dc0abe3b22fca22259542ee", null ], 41 | [ "set_roi", "classami_1_1image.html#a58b1f192005c428b6d89babed865ca4c", null ], 42 | [ "set_roi", "classami_1_1image.html#a50eaa70301af80e22117d80a1f7de250", null ], 43 | [ "set_roi_image", "classami_1_1image.html#aa700469ca7931de0d8d6c44549c54bc6", null ], 44 | [ "set_size", "classami_1_1image.html#a30aee6c532258c755ce456fd81934b06", null ], 45 | [ "set_value", "classami_1_1image.html#adb0b3c66926df9014068786d2b3a4cfe", null ], 46 | [ "size", "classami_1_1image.html#acce22ede351e6107067eb682f379203e", null ], 47 | [ "width", "classami_1_1image.html#a9025422209dd771ea41b8fc0126b71f4", null ], 48 | [ "write", "classami_1_1image.html#a8ee8c0e0a2e1f22cbcc697a7b98f08cc", null ], 49 | [ "write_bool", "classami_1_1image.html#a5a973f8424e50e6b6c3ea457c16b35b9", null ] 50 | ]; -------------------------------------------------------------------------------- /documentation/html/classami_1_1image__draw.js: -------------------------------------------------------------------------------- 1 | var classami_1_1image__draw = 2 | [ 3 | [ "draw_cercle", "classami_1_1image__draw.html#a87a917477afb8249f72a2a6514ecb361", null ] 4 | ]; -------------------------------------------------------------------------------- /documentation/html/classami_1_1image__primitives.js: -------------------------------------------------------------------------------- 1 | var classami_1_1image__primitives = 2 | [ 3 | [ "image_primitives", "classami_1_1image__primitives.html#a7b76d7b1a37039fec13adef8d612b120", null ], 4 | [ "image_primitives", "classami_1_1image__primitives.html#ad2bdf81b90e6aa916675e5285f1211c1", null ], 5 | [ "~image_primitives", "classami_1_1image__primitives.html#a5acdd2883192cd2ad1c9ee662a52a8d6", null ], 6 | [ "clear", "classami_1_1image__primitives.html#a54ebe33c0a9202ab80ca4dbb05eaa49f", null ], 7 | [ "find_nearest_line_equation", "classami_1_1image__primitives.html#a84a86e6e90c1ec9fd10ba038150dc7de", null ], 8 | [ "find_nearest_point_in_others_primitives", "classami_1_1image__primitives.html#a12903c693c9cf2c0969ec6645be48192", null ], 9 | [ "find_nearest_point_in_primitives", "classami_1_1image__primitives.html#abf179b785f49823d5285e93d4a397a8f", null ], 10 | [ "get_distorsion_center", "classami_1_1image__primitives.html#a67f53afe49964ec3f40cd5ffdaea1c11", null ], 11 | [ "get_distortion", "classami_1_1image__primitives.html#a1919a3dbce726d4db87ea826452756fd", null ], 12 | [ "get_distortion", "classami_1_1image__primitives.html#a3c7f68f3130a34e7cb25de6469f4828f", null ], 13 | [ "get_lines", "classami_1_1image__primitives.html#a00306150f24bf1e3867dfbaba87635f4", null ], 14 | [ "get_lines", "classami_1_1image__primitives.html#ac32b0495b32d1ace8ab4fbc79690ae0c", null ], 15 | [ "get_points", "classami_1_1image__primitives.html#a55df6d6639bd7d4e455af3fab6f9d8e1", null ], 16 | [ "get_points", "classami_1_1image__primitives.html#aba4a9a7855b41a14c03bdfe92e220526", null ], 17 | [ "initialize", "classami_1_1image__primitives.html#aacf250394ac8023222f3d5086e0216da", null ], 18 | [ "is_empty", "classami_1_1image__primitives.html#a15c3fc83180cc64eac0a0f5976b763b9", null ], 19 | [ "IsProjected_3dpointsInvalid", "classami_1_1image__primitives.html#ae203f8558a7eafadc4825bf4c1613016", null ], 20 | [ "Num_Puntos", "classami_1_1image__primitives.html#a220f729c9408d098498dc17bf2f9c760", null ], 21 | [ "operator=", "classami_1_1image__primitives.html#afc06ee48d8b51328c6adac465a0a5369", null ], 22 | [ "read", "classami_1_1image__primitives.html#a5ef60b980ed2a0e908a5c0e384f18ed5", null ], 23 | [ "set_distortion", "classami_1_1image__primitives.html#a7fbca2f9de4fd91f6217c1f5cb7e9ad5", null ], 24 | [ "set_lines", "classami_1_1image__primitives.html#a17975edd4835b32b26f2f4cadc43395e", null ], 25 | [ "set_points", "classami_1_1image__primitives.html#aff0dbf6e83ccd5263778c7cf93e33e8c", null ], 26 | [ "write", "classami_1_1image__primitives.html#a503abc5eef5a9482170c9165c8631a3e", null ], 27 | [ "operator<<", "classami_1_1image__primitives.html#a874ac9e99120d843e8cc6551a5660cba", null ], 28 | [ "projected_3dpoints", "classami_1_1image__primitives.html#aadd919e1b7306926000739b72d8d2406", null ] 29 | ]; -------------------------------------------------------------------------------- /documentation/html/classami_1_1lens__distortion__model.js: -------------------------------------------------------------------------------- 1 | var classami_1_1lens__distortion__model = 2 | [ 3 | [ "lens_distortion_model", "classami_1_1lens__distortion__model.html#a8dcc117b8df0184b99a268e3f74e953e", null ], 4 | [ "~lens_distortion_model", "classami_1_1lens__distortion__model.html#a3addec761236861adbc6f48bc618b251", null ], 5 | [ "evaluation", "classami_1_1lens__distortion__model.html#a469de0e5e24be6a07d40932873e0d029", null ], 6 | [ "evaluation", "classami_1_1lens__distortion__model.html#a6423ccf91de7b75b5a5b1e59af09f789", null ], 7 | [ "evaluation", "classami_1_1lens__distortion__model.html#ab05f0cbe7778994adb76ece156d1f56a", null ], 8 | [ "evaluation_quotient", "classami_1_1lens__distortion__model.html#a3a4e643804a7f7f5ed55a4ba3fcad5cd", null ], 9 | [ "evaluation_quotient", "classami_1_1lens__distortion__model.html#ae315b601e764d4e8a80ec1e15d9beeef", null ], 10 | [ "get_d", "classami_1_1lens__distortion__model.html#aa3bf1b7d6c6070d5f06257d3067df530", null ], 11 | [ "get_d", "classami_1_1lens__distortion__model.html#a6c16f333fe80ebbe1a40d2b39fa49d01", null ], 12 | [ "get_distortion_center", "classami_1_1lens__distortion__model.html#ad6707ff617a79aabd382b470d709ab66", null ], 13 | [ "get_distortion_center", "classami_1_1lens__distortion__model.html#a978004cbd379c51acd58492eb3619436", null ], 14 | [ "get_type", "classami_1_1lens__distortion__model.html#a2a036582558b0ee76ff81c22beb92dcd", null ], 15 | [ "inverse_evaluation", "classami_1_1lens__distortion__model.html#aacffec5d4fa3dfe4f9c7737cb29b4eb7", null ], 16 | [ "inverse_evaluation", "classami_1_1lens__distortion__model.html#a0d74927240273c79e3fee67737d530a6", null ], 17 | [ "inverse_evaluation_fast", "classami_1_1lens__distortion__model.html#aa77d4400b144e7f080084e4e94ab95e0", null ], 18 | [ "inverse_evaluation_quotient", "classami_1_1lens__distortion__model.html#aa697fd2f2de7bb80e7b06f871b165a12", null ], 19 | [ "inverse_evaluation_quotient", "classami_1_1lens__distortion__model.html#ac25d0cb8fc7f4bc92693061c388868c6", null ], 20 | [ "read", "classami_1_1lens__distortion__model.html#a29e576a12b99e392405846757d59b98f", null ], 21 | [ "reset", "classami_1_1lens__distortion__model.html#a4b66415a706f5c0e028e39ed3fd09c9a", null ], 22 | [ "set_d", "classami_1_1lens__distortion__model.html#a486a939854d7c4cb63869f1c87761cfe", null ], 23 | [ "set_d", "classami_1_1lens__distortion__model.html#a70c28e57793a0262dada81305550c6a2", null ], 24 | [ "set_distortion_center", "classami_1_1lens__distortion__model.html#a3a57273cd5fb8f0222de607cde7e4cb3", null ], 25 | [ "set_type", "classami_1_1lens__distortion__model.html#a552d761871e12304582a2ca2fc61c830", null ], 26 | [ "write", "classami_1_1lens__distortion__model.html#aad8390068a641db24729eafe5e2f866f", null ] 27 | ]; -------------------------------------------------------------------------------- /documentation/html/classami_1_1line.js: -------------------------------------------------------------------------------- 1 | var classami_1_1line = 2 | [ 3 | [ "line", "classami_1_1line.html#a43fc9ba05d86c636393a57f03fc6f84c", null ], 4 | [ "line", "classami_1_1line.html#af2f8eec0e9524c0fad23fb164cbbf957", null ], 5 | [ "line", "classami_1_1line.html#a73243cf25de7afe2c9f10eacea778fca", null ], 6 | [ "distance", "classami_1_1line.html#a3007c3f6cbff22482e439c2e218a31cd", null ], 7 | [ "evaluation", "classami_1_1line.html#a28b4985152d84c31e2070a78477a9b80", null ], 8 | [ "get_a", "classami_1_1line.html#ababa899d998f3520a5a73e944afd6664", null ], 9 | [ "get_a", "classami_1_1line.html#a74707fff1160c64e580cb85863d67fba", null ], 10 | [ "get_abc", "classami_1_1line.html#a8be304bacf666adebde454030197a285", null ], 11 | [ "get_abc", "classami_1_1line.html#a3ec6aa027bdf74f44ddf3ac63808d0a7", null ], 12 | [ "get_b", "classami_1_1line.html#a80c901ea579f4468f191a4bd678a7c34", null ], 13 | [ "get_b", "classami_1_1line.html#a39b39672f80ecfbbe9719af3718b96fd", null ], 14 | [ "get_c", "classami_1_1line.html#a662cc66b53e95330f3e1bc1c96c034a4", null ], 15 | [ "get_c", "classami_1_1line.html#abb1b1874dc514fe3800f231ffeae2462", null ], 16 | [ "set_a", "classami_1_1line.html#a6b5836d222cb2e93a27ecf0c0e9c2736", null ], 17 | [ "set_abc", "classami_1_1line.html#a502d9597349c46847ca4745ab36bb5ac", null ], 18 | [ "set_b", "classami_1_1line.html#a6f77e89cc2f874c2fc7a406ed6cba80d", null ], 19 | [ "set_c", "classami_1_1line.html#a0a676d2155079a95e5f50e45c8f8c8dc", null ], 20 | [ "line_intersection", "classami_1_1line.html#ab7043fa7ce7f5061bdffc5edc19b8a7b", null ] 21 | ]; -------------------------------------------------------------------------------- /documentation/html/classami_1_1line__points.js: -------------------------------------------------------------------------------- 1 | var classami_1_1line__points = 2 | [ 3 | [ "line_points", "classami_1_1line__points.html#a75330274b354c43e8bef1f29ac6e400c", null ], 4 | [ "line_points", "classami_1_1line__points.html#abaa16bdb07bf6a8847e13dfc641ea8a2", null ], 5 | [ "line_points", "classami_1_1line__points.html#aa911bb17bdfb71e684cd61fb183bb643", null ], 6 | [ "~line_points", "classami_1_1line__points.html#aeb4c34bfe542d226fa45eb8b7e45810e", null ], 7 | [ "distance", "classami_1_1line__points.html#aad872ac7610dbad57003bf6e3f31f4cd", null ], 8 | [ "evaluation", "classami_1_1line__points.html#a9f30a3eef7bed813b0c85f5665323e51", null ], 9 | [ "get_a", "classami_1_1line__points.html#a6de24ccc908ea89d86e3dacc0a7fdddc", null ], 10 | [ "get_a", "classami_1_1line__points.html#ab6e977a6cdb80e5c8865df02eb403fc4", null ], 11 | [ "get_abc", "classami_1_1line__points.html#a58cfc14b0d3cb551e3971bd558fee973", null ], 12 | [ "get_b", "classami_1_1line__points.html#abdc520810df6358af073be14e0490266", null ], 13 | [ "get_b", "classami_1_1line__points.html#acfac4eabdb124c7c7bc596c77b404590", null ], 14 | [ "get_c", "classami_1_1line__points.html#a5854f7200467626b7983af9eac2ccff6", null ], 15 | [ "get_c", "classami_1_1line__points.html#a4c1046c33f74a7f62005da01df70f4b9", null ], 16 | [ "get_max_min_points", "classami_1_1line__points.html#aab2d75506dcbe7ce4b3c8712a7101e60", null ], 17 | [ "get_points", "classami_1_1line__points.html#a3fe0b931929453480ce8055cb2e741e4", null ], 18 | [ "get_points", "classami_1_1line__points.html#ac1e73bac5fd424143ee39035601e336c", null ], 19 | [ "get_rect", "classami_1_1line__points.html#ab53a2b24164936559a79f61681b25d53", null ], 20 | [ "get_rect", "classami_1_1line__points.html#a3727e92e021397e58e14ab8cf7616708", null ], 21 | [ "operator=", "classami_1_1line__points.html#a6b89ee0e1d0c9279c423cc265f0499e2", null ], 22 | [ "points_to_equation", "classami_1_1line__points.html#ad9f1f885954ce4f96fa1741cfbdc0427", null ], 23 | [ "set_a", "classami_1_1line__points.html#af5901c9e8e19b656d19cac60f5225677", null ], 24 | [ "set_abc", "classami_1_1line__points.html#a2b3583405fdf133551f67791932cd38b", null ], 25 | [ "set_b", "classami_1_1line__points.html#a75869fc46328ed887dda3c62075b435f", null ], 26 | [ "set_c", "classami_1_1line__points.html#ac8a739f18552e5639e8d6f50eeb95727", null ], 27 | [ "set_points", "classami_1_1line__points.html#a0be7366c6a5e78af0fc7f060df18da49", null ] 28 | ]; -------------------------------------------------------------------------------- /documentation/html/classami_1_1point2d.js: -------------------------------------------------------------------------------- 1 | var classami_1_1point2d = 2 | [ 3 | [ "point2d", "classami_1_1point2d.html#ac824817a237db47da518f37c1836d003", null ], 4 | [ "~point2d", "classami_1_1point2d.html#ad2cb0422d312dd63f3937da99894998d", null ], 5 | [ "point2d", "classami_1_1point2d.html#a1155a7346abcd357f6209f7e4aec9da6", null ], 6 | [ "point2d", "classami_1_1point2d.html#a271019180c361c74b2e56aaa47356301", null ], 7 | [ "point2d", "classami_1_1point2d.html#a138ea7e6f055de621a09d37f2722bd24", null ], 8 | [ "find_nearest_point", "classami_1_1point2d.html#a375e1c1419deb0cacedb78970690f3cf", null ], 9 | [ "find_nearest_point", "classami_1_1point2d.html#ade759b6d1a17c99c07d3f2ca52b87525", null ], 10 | [ "norm", "classami_1_1point2d.html#a9d233a802a39bbb7ded2b8e4a3935c9c", null ], 11 | [ "norm2", "classami_1_1point2d.html#aeeecb63bfa920ac3a29e601a87a0f2a0", null ], 12 | [ "operator!=", "classami_1_1point2d.html#acd6db1a2b04f050e95e86bb98606da21", null ], 13 | [ "operator*", "classami_1_1point2d.html#abfbe5557de9fd64df1d3979f3ec3a2e1", null ], 14 | [ "operator*", "classami_1_1point2d.html#aa2961d6f6d4a8b3fcb3a3ecb7e33944e", null ], 15 | [ "operator+", "classami_1_1point2d.html#a1bfff9a18e3dcff4eb203adbb1469a33", null ], 16 | [ "operator-", "classami_1_1point2d.html#a58dd68165b9de7fb4c881c9e7812112d", null ], 17 | [ "operator=", "classami_1_1point2d.html#a8214900df65cb72bf0a1bde736129de2", null ], 18 | [ "operator=", "classami_1_1point2d.html#a8ec08295e06772ca58625a9651bc7de9", null ], 19 | [ "print", "classami_1_1point2d.html#af6c95bfcd034ac194998b4ed8d7fe6cf", null ], 20 | [ "x", "classami_1_1point2d.html#a8c882e1ec18c63f069311d32fc2233c5", null ], 21 | [ "y", "classami_1_1point2d.html#a9baf43c37e167ce9d90e0e623e9070e1", null ] 22 | ]; -------------------------------------------------------------------------------- /documentation/html/classami_1_1subpixel__image__contours.js: -------------------------------------------------------------------------------- 1 | var classami_1_1subpixel__image__contours = 2 | [ 3 | [ "subpixel_image_contours", "classami_1_1subpixel__image__contours.html#aa624ea5908800d9ea797753d9b5bf95a", null ], 4 | [ "subpixel_image_contours", "classami_1_1subpixel__image__contours.html#a6e83ba777e5c122002431d7f228b3ac5", null ], 5 | [ "~subpixel_image_contours", "classami_1_1subpixel__image__contours.html#a58eae4b903dcc4dbf88119b3c7b277eb", null ], 6 | [ "subpixel_image_contours", "classami_1_1subpixel__image__contours.html#ae269667b2fd0f568d0716a050659c557", null ], 7 | [ "build_index", "classami_1_1subpixel__image__contours.html#af83108445e0b9f53b2db11e3fe2f4d90", null ], 8 | [ "clean", "classami_1_1subpixel__image__contours.html#ac1072680e4a337a07a3c7acf90c8e34f", null ], 9 | [ "find_nearest_subpixel", "classami_1_1subpixel__image__contours.html#a2d13fe56c19b54219aa64ade292d2efa", null ], 10 | [ "get_c", "classami_1_1subpixel__image__contours.html#a5e5a6a1588e3138c1b5a5c5984fe8c31", null ], 11 | [ "get_c", "classami_1_1subpixel__image__contours.html#aedfedd750ff15bf13d6d94dcbc5f2170", null ], 12 | [ "get_coseno", "classami_1_1subpixel__image__contours.html#aa27b46bc051c14b2361b4667d8298ac4", null ], 13 | [ "get_coseno", "classami_1_1subpixel__image__contours.html#ad78799e09dfd1ea0cdc3cab8625aed6d", null ], 14 | [ "get_d", "classami_1_1subpixel__image__contours.html#a25820d38b266c3cfe1507ff38dad3788", null ], 15 | [ "get_d", "classami_1_1subpixel__image__contours.html#a5d1f0f55d68f4b90bcbba15d17d90b4c", null ], 16 | [ "get_height", "classami_1_1subpixel__image__contours.html#a7b5a498c6c864e3050041e45b0c4de24", null ], 17 | [ "get_index", "classami_1_1subpixel__image__contours.html#a8a5ce6c26a1bbd43179845adaccbcf78", null ], 18 | [ "get_index", "classami_1_1subpixel__image__contours.html#aa821896c0b5f3b0bef6e6e484663d24a", null ], 19 | [ "get_seno", "classami_1_1subpixel__image__contours.html#aae2b208b27d3b7f1fb9bf8394e380d07", null ], 20 | [ "get_seno", "classami_1_1subpixel__image__contours.html#a1db60c1c2d26c6c4bc9bd8544059237d", null ], 21 | [ "get_width", "classami_1_1subpixel__image__contours.html#aa3d6eeb112466cb13ae23c6885cb21e4", null ], 22 | [ "get_x", "classami_1_1subpixel__image__contours.html#a697031009595330ff10d8f51cf8c4ee3", null ], 23 | [ "get_x", "classami_1_1subpixel__image__contours.html#a78e096007aa3984e634782a2f968ddc5", null ], 24 | [ "get_y", "classami_1_1subpixel__image__contours.html#aa26905072455cd982f37865eab378939", null ], 25 | [ "get_y", "classami_1_1subpixel__image__contours.html#aa5631f34eda4ca27b44f371e4dd42554", null ], 26 | [ "set_c", "classami_1_1subpixel__image__contours.html#a4a01141bfb71c32156b468d456462b08", null ], 27 | [ "set_coseno", "classami_1_1subpixel__image__contours.html#ab77ec2b3735ba182e0ea051f61dabef5", null ], 28 | [ "set_d", "classami_1_1subpixel__image__contours.html#adec5af3c3b1458111d8c244eb73b272c", null ], 29 | [ "set_height", "classami_1_1subpixel__image__contours.html#a316951040a4215778b5835b842db58c7", null ], 30 | [ "set_index", "classami_1_1subpixel__image__contours.html#a4b6c163181a85996cca41d16bafaab23", null ], 31 | [ "set_seno", "classami_1_1subpixel__image__contours.html#a58944cbf50e3641ed5388b57470ac0cc", null ], 32 | [ "set_width", "classami_1_1subpixel__image__contours.html#a8ea86cbb1f5492073524d0e592653a12", null ], 33 | [ "set_x", "classami_1_1subpixel__image__contours.html#a9601a23085cac91cfa1d9ebfa3c25e41", null ], 34 | [ "set_y", "classami_1_1subpixel__image__contours.html#a6c66b228641cbb7f31d54cc8a9c152a0", null ], 35 | [ "subpixel_empty", "classami_1_1subpixel__image__contours.html#a8b75955d37b08ffb01517141ac12ff05", null ] 36 | ]; -------------------------------------------------------------------------------- /documentation/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/closed.png -------------------------------------------------------------------------------- /documentation/html/dir_33850087c5288a5967083bef9325cba7.js: -------------------------------------------------------------------------------- 1 | var dir_33850087c5288a5967083bef9325cba7 = 2 | [ 3 | [ "ami_pol.cpp", "ami__pol_8cpp_source.html", null ], 4 | [ "ami_pol.h", "ami__pol_8h_source.html", null ] 5 | ]; -------------------------------------------------------------------------------- /documentation/html/dir_7138ddaf3c712e3b02c1e4cc2dc3235b.js: -------------------------------------------------------------------------------- 1 | var dir_7138ddaf3c712e3b02c1e4cc2dc3235b = 2 | [ 3 | [ "io_png", "dir_ebe14d1658c4771d1aef8778c79ea0ea.html", "dir_ebe14d1658c4771d1aef8778c79ea0ea" ], 4 | [ "image.h", "image_8h.html", "image_8h" ] 5 | ]; -------------------------------------------------------------------------------- /documentation/html/dir_8897c8bb118eaf3f5517261118c93013.js: -------------------------------------------------------------------------------- 1 | var dir_8897c8bb118eaf3f5517261118c93013 = 2 | [ 3 | [ "image_draw.h", "image__draw_8h.html", "image__draw_8h" ] 4 | ]; -------------------------------------------------------------------------------- /documentation/html/dir_b286ce078e05d6b52150c4954612175f.js: -------------------------------------------------------------------------------- 1 | var dir_b286ce078e05d6b52150c4954612175f = 2 | [ 3 | [ "image_primitives.h", "image__primitives_8h.html", "image__primitives_8h" ], 4 | [ "line.h", "line_8h.html", "line_8h" ], 5 | [ "line_extraction.cpp", "line__extraction_8cpp_source.html", null ], 6 | [ "line_extraction.h", "line__extraction_8h_source.html", null ], 7 | [ "line_points.cpp", "line__points_8cpp.html", "line__points_8cpp" ], 8 | [ "line_points.h", "line__points_8h.html", "line__points_8h" ], 9 | [ "point2d.h", "point2d_8h.html", "point2d_8h" ], 10 | [ "subpixel_image_contours.cpp", "subpixel__image__contours_8cpp.html", "subpixel__image__contours_8cpp" ], 11 | [ "subpixel_image_contours.h", "subpixel__image__contours_8h.html", "subpixel__image__contours_8h" ] 12 | ]; -------------------------------------------------------------------------------- /documentation/html/dir_b78159e9615f0019e7c530e2ed471256.js: -------------------------------------------------------------------------------- 1 | var dir_b78159e9615f0019e7c530e2ed471256 = 2 | [ 3 | [ "utilities.cpp", "utilities_8cpp_source.html", null ], 4 | [ "utilities.h", "utilities_8h_source.html", null ] 5 | ]; -------------------------------------------------------------------------------- /documentation/html/dir_ca19a52f84eafaef0dedf81048938e52.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | An Iterative Optimization Algorithm for Lens Distortion CorrectionUsingTwo-ParameterModels: ami_filters Directory Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 19 | 20 | 23 | 24 | 25 | 26 |
27 |
28 | 29 | 30 | 31 | 32 | 36 | 37 | 38 |
33 |
An Iterative Optimization Algorithm for Lens Distortion CorrectionUsingTwo-ParameterModels 34 |
35 |
39 |
40 | 41 | 42 | 45 | 68 |
69 |
70 | 75 |
77 |
78 |
79 | 82 |
83 | 84 | 89 | 90 | 91 |
92 | 95 |
96 | 97 |
98 |
99 |
ami_filters Directory Reference
100 |
101 |
102 | 103 | 105 | 106 | 107 | 108 |

104 | Files

file  filters.h [code]
 filters class AMI_DLL_H definition
 
109 |
110 |
111 | 112 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /documentation/html/dir_ca19a52f84eafaef0dedf81048938e52.js: -------------------------------------------------------------------------------- 1 | var dir_ca19a52f84eafaef0dedf81048938e52 = 2 | [ 3 | [ "filters.h", "filters_8h.html", "filters_8h" ] 4 | ]; -------------------------------------------------------------------------------- /documentation/html/dir_d3a77bb22394607dec69718f73636396.js: -------------------------------------------------------------------------------- 1 | var dir_d3a77bb22394607dec69718f73636396 = 2 | [ 3 | [ "lens_distortion.cpp", "lens__distortion_8cpp.html", "lens__distortion_8cpp" ], 4 | [ "lens_distortion.h", "lens__distortion_8h.html", "lens__distortion_8h" ], 5 | [ "lens_distortion_model.cpp", "lens__distortion__model_8cpp.html", "lens__distortion__model_8cpp" ], 6 | [ "lens_distortion_model.h", "lens__distortion__model_8h.html", "lens__distortion__model_8h" ], 7 | [ "lens_distortion_procedures.cpp", "lens__distortion__procedures_8cpp_source.html", null ], 8 | [ "lens_distortion_procedures.h", "lens__distortion__procedures_8h_source.html", null ] 9 | ]; -------------------------------------------------------------------------------- /documentation/html/dir_ebe14d1658c4771d1aef8778c79ea0ea.js: -------------------------------------------------------------------------------- 1 | var dir_ebe14d1658c4771d1aef8778c79ea0ea = 2 | [ 3 | [ "io_png.cpp", "io__png_8cpp_source.html", null ], 4 | [ "io_png.h", "io__png_8h_source.html", null ] 5 | ]; -------------------------------------------------------------------------------- /documentation/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/doxygen.png -------------------------------------------------------------------------------- /documentation/html/dynsections.js: -------------------------------------------------------------------------------- 1 | function toggleVisibility(linkObj) 2 | { 3 | var base = $(linkObj).attr('id'); 4 | var summary = $('#'+base+'-summary'); 5 | var content = $('#'+base+'-content'); 6 | var trigger = $('#'+base+'-trigger'); 7 | var src=$(trigger).attr('src'); 8 | if (content.is(':visible')===true) { 9 | content.hide(); 10 | summary.show(); 11 | $(linkObj).addClass('closed').removeClass('opened'); 12 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); 13 | } else { 14 | content.show(); 15 | summary.hide(); 16 | $(linkObj).removeClass('closed').addClass('opened'); 17 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); 18 | } 19 | return false; 20 | } 21 | 22 | function updateStripes() 23 | { 24 | $('table.directory tr'). 25 | removeClass('even').filter(':visible:even').addClass('even'); 26 | } 27 | function toggleLevel(level) 28 | { 29 | $('table.directory tr').each(function(){ 30 | var l = this.id.split('_').length-1; 31 | var i = $('#img'+this.id.substring(3)); 32 | var a = $('#arr'+this.id.substring(3)); 33 | if (l 2 | 3 | 4 | 5 | 6 | 7 | An Iterative Optimization Algorithm for Lens Distortion CorrectionUsingTwo-ParameterModels: Main Page 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 19 | 20 | 23 | 24 | 25 | 26 |
27 |
28 | 29 | 30 | 31 | 32 | 36 | 37 | 38 |
33 |
An Iterative Optimization Algorithm for Lens Distortion CorrectionUsingTwo-ParameterModels 34 |
35 |
39 |
40 | 41 | 42 | 45 | 68 |
69 |
70 | 75 |
77 |
78 |
79 | 82 |
83 | 84 | 89 | 90 | 91 |
92 | 95 |
96 | 97 |
98 |
99 |
An Iterative Optimization Algorithm for Lens Distortion CorrectionUsingTwo-ParameterModels Documentation
100 |
101 |
102 |
103 |
104 | 105 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /documentation/html/lens__distortion_8cpp.js: -------------------------------------------------------------------------------- 1 | var lens__distortion_8cpp = 2 | [ 3 | [ "AMI_DLL_CPP", "lens__distortion_8cpp.html#ad7fc01ef164eea1d1e5d9027bc1e4d04", null ], 4 | [ "ami_1v_polynom_multiplication", "lens__distortion_8cpp.html#a53b29aab0bd89157d820320887fb83d9", null ], 5 | [ "ami_2v_polynom_derivatives", "lens__distortion_8cpp.html#aeaddbd171f2761eebeecb55049817e5c", null ], 6 | [ "ami_2v_polynom_evaluation", "lens__distortion_8cpp.html#a9f203f366915ec164e926b4bdfa6e011", null ], 7 | [ "ami_2v_polynom_multiplication", "lens__distortion_8cpp.html#af80b3266302be6c330608ff923dea743", null ], 8 | [ "ami_2v_polynom_to_1v_polynom", "lens__distortion_8cpp.html#a691671322f4f14295eecd6c014e954f0", null ], 9 | [ "ami_determinante", "lens__distortion_8cpp.html#a00bef7701baa55c750efe185e7ee5aaf", null ], 10 | [ "ami_determinante", "lens__distortion_8cpp.html#ab4b046817f15a6744b62e5d7f9ae0928", null ], 11 | [ "ami_distortion_model_estimation_2p", "lens__distortion_8cpp.html#aaa1db8c070613f5fdf3b5d506a1e9fc3", null ], 12 | [ "ami_inverse_lens_distortion", "lens__distortion_8cpp.html#a6a2cad96ff732f02140acfcf9398fac5", null ], 13 | [ "ami_inverse_lens_distortion_fast", "lens__distortion_8cpp.html#a6d20fff14facba3d967c037eff7d62a0", null ], 14 | [ "ami_inverse_lens_distortion_newton_raphson", "lens__distortion_8cpp.html#aaae9e10d3d81f14cab8c0857bd1c6bab", null ], 15 | [ "ami_inverse_lens_distortion_old", "lens__distortion_8cpp.html#a5a5879a87e126cdb7219cf98bd40224e", null ], 16 | [ "ami_lens_distortion_estimation", "lens__distortion_8cpp.html#a610f5e5a0638cede478e83cec5528a2b", null ], 17 | [ "ami_lens_distortion_estimation_2v", "lens__distortion_8cpp.html#a5180362b6dcea31cab3644e9ae716667", null ], 18 | [ "ami_lens_distortion_model_evaluation", "lens__distortion_8cpp.html#a91cf577e9059138a1b8a5e91d916e591", null ], 19 | [ "ami_lens_distortion_model_update", "lens__distortion_8cpp.html#aa26fe91d224888c9995ae9f83b9d2006", null ], 20 | [ "ami_lens_distortion_model_update_2v", "lens__distortion_8cpp.html#a8432ef4597d012c4322a97f47e716886", null ], 21 | [ "ami_lens_distortion_polynomial_update", "lens__distortion_8cpp.html#a81aa59665f1d87af6b1465228ca662bb", null ], 22 | [ "ami_lens_distortion_polynomial_update_2v", "lens__distortion_8cpp.html#a3a629a6ad432f97c289fa5a03b934c52", null ], 23 | [ "ami_lens_distortion_polynomial_update_distance_2v", "lens__distortion_8cpp.html#a4ecb57a9a52f317165a87b7ce66b4497", null ], 24 | [ "ami_lens_distortion_zoom_normalization", "lens__distortion_8cpp.html#af5a0cde19f987d6777e15c2877770d5c", null ], 25 | [ "ami_LensDistortionEnergyError", "lens__distortion_8cpp.html#add785af823ed994dd0c147678463313d", null ], 26 | [ "ami_LensDistortionVarianceError", "lens__distortion_8cpp.html#aff8204cf9ec94ec873b1d3cf5d7b6501", null ], 27 | [ "ami_points_to_line_equation", "lens__distortion_8cpp.html#a5a6993ebdbcd3871b6c1c41b5c2efbe7", null ], 28 | [ "ami_points_to_line_equation_outlier_elimination", "lens__distortion_8cpp.html#ac0d0d838cadc25c24a880fd550763726", null ], 29 | [ "ami_polynom_determinant", "lens__distortion_8cpp.html#a15a79d08f4ace8e1130a4b6ad2f5c820", null ], 30 | [ "ami_polynomial_evaluation", "lens__distortion_8cpp.html#ab575370757248fb11ffc79c321be0f0d", null ], 31 | [ "ami_RootCubicPolynomial", "lens__distortion_8cpp.html#a4a264ee1323785c6ca2ac7b1cec51228", null ] 32 | ]; -------------------------------------------------------------------------------- /documentation/html/lens__distortion_8h.js: -------------------------------------------------------------------------------- 1 | var lens__distortion_8h = 2 | [ 3 | [ "LENS_DISTORTION_H", "lens__distortion_8h.html#adf9c9becdabb13c655f48310fbed3254", null ], 4 | [ "ami_1v_polynom_multiplication", "lens__distortion_8h.html#ad04a2a9b5356f064cf35318f15dd4e52", null ], 5 | [ "ami_2v_polynom_derivatives", "lens__distortion_8h.html#a30d55a51232cc0b1f60a335d02fc076e", null ], 6 | [ "ami_2v_polynom_evaluation", "lens__distortion_8h.html#a1365f44cb7b9c7ba48059c207a7ced43", null ], 7 | [ "ami_2v_polynom_multiplication", "lens__distortion_8h.html#a259865f460878019aaf49c8da5185ffa", null ], 8 | [ "ami_2v_polynom_to_1v_polynom", "lens__distortion_8h.html#a7c50ca3feb3415a0cdb6a40c13065fee", null ], 9 | [ "ami_determinante", "lens__distortion_8h.html#a54d509948a31c227b1492b4fa2cddbdc", null ], 10 | [ "ami_determinante", "lens__distortion_8h.html#acdfbbffd5059848d856a376ac11a7a5e", null ], 11 | [ "ami_distortion_model_estimation_2p", "lens__distortion_8h.html#ac49fd6b5bad4baf96584b5a1a9b6a7f8", null ], 12 | [ "ami_inverse_lens_distortion", "lens__distortion_8h.html#aae703835f40444a8f30f97fb440e8cde", null ], 13 | [ "ami_inverse_lens_distortion_fast", "lens__distortion_8h.html#ade8806928d1dc52078c46ba8dde1d468", null ], 14 | [ "ami_inverse_lens_distortion_newton_raphson", "lens__distortion_8h.html#a8c1ea229a20445646e90557ec9db5deb", null ], 15 | [ "ami_lens_distortion_estimation", "lens__distortion_8h.html#a5c6a0166eb9707fe5da8620623bbe317", null ], 16 | [ "ami_lens_distortion_estimation_2v", "lens__distortion_8h.html#a8349832abb7fa7c2df2fad0552e4b98b", null ], 17 | [ "ami_lens_distortion_model_evaluation", "lens__distortion_8h.html#a5a03da601a0a322ead65e2acae05a295", null ], 18 | [ "ami_lens_distortion_model_update", "lens__distortion_8h.html#ab05e07f42a469858292da337895e3c81", null ], 19 | [ "ami_lens_distortion_model_update_2v", "lens__distortion_8h.html#a4d8e5dd476df9a0186eac1f769040c8c", null ], 20 | [ "ami_lens_distortion_polynomial_update", "lens__distortion_8h.html#a95fa1d8343a2c00055132b6c617e9b11", null ], 21 | [ "ami_lens_distortion_polynomial_update_2v", "lens__distortion_8h.html#a993ba08e86863e4ba40ce188553d1bc9", null ], 22 | [ "ami_lens_distortion_polynomial_update_distance_2v", "lens__distortion_8h.html#aa6a8fb18e677957c3c7e351145773f72", null ], 23 | [ "ami_lens_distortion_zoom_normalization", "lens__distortion_8h.html#a2ff41a90c1585e26c1919bd505d23a4d", null ], 24 | [ "ami_LensDistortionEnergyError", "lens__distortion_8h.html#aeba44214c08927e1019a2c525eededdb", null ], 25 | [ "ami_LensDistortionVarianceError", "lens__distortion_8h.html#a516e071a1137b2d167d43a0e967c3cfc", null ], 26 | [ "ami_points_to_line_equation", "lens__distortion_8h.html#abde16f43c633e88201c34062be29e5d4", null ], 27 | [ "ami_points_to_line_equation_outlier_elimination", "lens__distortion_8h.html#af3e0f74e2a57ea0d9fdacf113be26531", null ], 28 | [ "ami_polynom_determinant", "lens__distortion_8h.html#a4b8af2eae228955b47a8e08f16a94fbf", null ], 29 | [ "ami_polynomial_evaluation", "lens__distortion_8h.html#a941191dbda41f049b138fc87d7be220b", null ], 30 | [ "ami_RootCubicPolynomial", "lens__distortion_8h.html#a7fd6b595c40ab5cf626444c6c8a2d6fa", null ] 31 | ]; -------------------------------------------------------------------------------- /documentation/html/lens__distortion__correction__2p__iterative__optimization_8cpp.js: -------------------------------------------------------------------------------- 1 | var lens__distortion__correction__2p__iterative__optimization_8cpp = 2 | [ 3 | [ "energy_minimization", "lens__distortion__correction__2p__iterative__optimization_8cpp.html#a3f27841655191e51f52fc2a72d2de75f", null ], 4 | [ "iterative_optimization", "lens__distortion__correction__2p__iterative__optimization_8cpp.html#ad573fcd45a841c4f3734aa2d088ea2d5", null ], 5 | [ "main", "lens__distortion__correction__2p__iterative__optimization_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97", null ] 6 | ]; -------------------------------------------------------------------------------- /documentation/html/lens__distortion__model_8cpp.js: -------------------------------------------------------------------------------- 1 | var lens__distortion__model_8cpp = 2 | [ 3 | [ "AMI_DLL_CPP", "lens__distortion__model_8cpp.html#ad7fc01ef164eea1d1e5d9027bc1e4d04", null ] 4 | ]; -------------------------------------------------------------------------------- /documentation/html/lens__distortion__model_8h.js: -------------------------------------------------------------------------------- 1 | var lens__distortion__model_8h = 2 | [ 3 | [ "lens_distortion_model", "classami_1_1lens__distortion__model.html", "classami_1_1lens__distortion__model" ], 4 | [ "DIVISION", "lens__distortion__model_8h.html#af8ec95eea5b7516e3ce7b9cfa44d8a67", null ], 5 | [ "LENS_DISTORTION_MODEL_H", "lens__distortion__model_8h.html#a8653253782cf5f65717d8113bc328746", null ], 6 | [ "POLYNOMIAL", "lens__distortion__model_8h.html#ae13d91fe6e514f0aa1caba701ef1ff92", null ] 7 | ]; -------------------------------------------------------------------------------- /documentation/html/line_8h.js: -------------------------------------------------------------------------------- 1 | var line_8h = 2 | [ 3 | [ "line", "classami_1_1line.html", "classami_1_1line" ], 4 | [ "LINE_H", "line_8h.html#a499a199922821aee9f4beeab0521c0e0", null ], 5 | [ "line_intersection", "line_8h.html#a951e6ed32f3cd054a14350081f6d92c1", null ], 6 | [ "operator<<", "line_8h.html#ac736fc2d37f573ece086f8a89f58ff02", null ], 7 | [ "operator>>", "line_8h.html#adfde078b3ede09b501a84577337cab17", null ] 8 | ]; -------------------------------------------------------------------------------- /documentation/html/line__points_8cpp.js: -------------------------------------------------------------------------------- 1 | var line__points_8cpp = 2 | [ 3 | [ "AMI_DLL_CPP", "line__points_8cpp.html#ad7fc01ef164eea1d1e5d9027bc1e4d04", null ] 4 | ]; -------------------------------------------------------------------------------- /documentation/html/line__points_8h.js: -------------------------------------------------------------------------------- 1 | var line__points_8h = 2 | [ 3 | [ "line_points", "classami_1_1line__points.html", "classami_1_1line__points" ], 4 | [ "LINE_POINTS_H", "line__points_8h.html#a48d912558b3d097d021bda98d450499b", null ] 5 | ]; -------------------------------------------------------------------------------- /documentation/html/logo_ctim_iris_completo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/logo_ctim_iris_completo.png -------------------------------------------------------------------------------- /documentation/html/logo_ctim_iris_completo_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/logo_ctim_iris_completo_r.png -------------------------------------------------------------------------------- /documentation/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/nav_f.png -------------------------------------------------------------------------------- /documentation/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/nav_g.png -------------------------------------------------------------------------------- /documentation/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/nav_h.png -------------------------------------------------------------------------------- /documentation/html/navtree.css: -------------------------------------------------------------------------------- 1 | #nav-tree .children_ul { 2 | margin:0; 3 | padding:4px; 4 | } 5 | 6 | #nav-tree ul { 7 | list-style:none outside none; 8 | margin:0px; 9 | padding:0px; 10 | } 11 | 12 | #nav-tree li { 13 | white-space:nowrap; 14 | margin:0px; 15 | padding:0px; 16 | } 17 | 18 | #nav-tree .plus { 19 | margin:0px; 20 | } 21 | 22 | #nav-tree .selected { 23 | background-image: url('tab_a.png'); 24 | background-repeat:repeat-x; 25 | color: #fff; 26 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 27 | } 28 | 29 | #nav-tree img { 30 | margin:0px; 31 | padding:0px; 32 | border:0px; 33 | vertical-align: middle; 34 | } 35 | 36 | #nav-tree a { 37 | text-decoration:none; 38 | padding:0px; 39 | margin:0px; 40 | outline:none; 41 | } 42 | 43 | #nav-tree .label { 44 | margin:0px; 45 | padding:0px; 46 | font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 47 | } 48 | 49 | #nav-tree .label a { 50 | padding:2px; 51 | } 52 | 53 | #nav-tree .selected a { 54 | text-decoration:none; 55 | color:#fff; 56 | } 57 | 58 | #nav-tree .children_ul { 59 | margin:0px; 60 | padding:0px; 61 | } 62 | 63 | #nav-tree .item { 64 | margin:0px; 65 | padding:0px; 66 | } 67 | 68 | #nav-tree { 69 | padding: 0px 0px; 70 | background-color: #FAFAFF; 71 | font-size:14px; 72 | overflow:auto; 73 | } 74 | 75 | #doc-content { 76 | overflow:auto; 77 | display:block; 78 | padding:0px; 79 | margin:0px; 80 | -webkit-overflow-scrolling : touch; /* iOS 5+ */ 81 | } 82 | 83 | #side-nav { 84 | padding:0 6px 0 0; 85 | margin: 0px; 86 | display:block; 87 | position: absolute; 88 | left: 0px; 89 | width: 250px; 90 | } 91 | 92 | .ui-resizable .ui-resizable-handle { 93 | display:block; 94 | } 95 | 96 | .ui-resizable-e { 97 | background:url("ftv2splitbar.png") repeat scroll right center transparent; 98 | cursor:e-resize; 99 | height:100%; 100 | right:0; 101 | top:0; 102 | width:6px; 103 | } 104 | 105 | .ui-resizable-handle { 106 | display:none; 107 | font-size:0.1px; 108 | position:absolute; 109 | z-index:1; 110 | } 111 | 112 | #nav-tree-contents { 113 | margin: 6px 0px 0px 0px; 114 | } 115 | 116 | #nav-tree { 117 | background-image:url('nav_h.png'); 118 | background-repeat:repeat-x; 119 | background-color: #F9FAFC; 120 | -webkit-overflow-scrolling : touch; /* iOS 5+ */ 121 | } 122 | 123 | #nav-sync { 124 | position:absolute; 125 | top:5px; 126 | right:24px; 127 | z-index:0; 128 | } 129 | 130 | #nav-sync img { 131 | opacity:0.3; 132 | } 133 | 134 | #nav-sync img:hover { 135 | opacity:0.9; 136 | } 137 | 138 | @media print 139 | { 140 | #nav-tree { display: none; } 141 | div.ui-resizable-handle { display: none; position: relative; } 142 | } 143 | 144 | -------------------------------------------------------------------------------- /documentation/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/open.png -------------------------------------------------------------------------------- /documentation/html/point2d_8h.js: -------------------------------------------------------------------------------- 1 | var point2d_8h = 2 | [ 3 | [ "point2d", "classami_1_1point2d.html", "classami_1_1point2d" ], 4 | [ "POINT2D_H", "point2d_8h.html#a9d0bfc4247d39ed81aa2af37901afb98", null ] 5 | ]; -------------------------------------------------------------------------------- /documentation/html/resize.js: -------------------------------------------------------------------------------- 1 | var cookie_namespace = 'doxygen'; 2 | var sidenav,navtree,content,header; 3 | 4 | function readCookie(cookie) 5 | { 6 | var myCookie = cookie_namespace+"_"+cookie+"="; 7 | if (document.cookie) 8 | { 9 | var index = document.cookie.indexOf(myCookie); 10 | if (index != -1) 11 | { 12 | var valStart = index + myCookie.length; 13 | var valEnd = document.cookie.indexOf(";", valStart); 14 | if (valEnd == -1) 15 | { 16 | valEnd = document.cookie.length; 17 | } 18 | var val = document.cookie.substring(valStart, valEnd); 19 | return val; 20 | } 21 | } 22 | return 0; 23 | } 24 | 25 | function writeCookie(cookie, val, expiration) 26 | { 27 | if (val==undefined) return; 28 | if (expiration == null) 29 | { 30 | var date = new Date(); 31 | date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week 32 | expiration = date.toGMTString(); 33 | } 34 | document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; 35 | } 36 | 37 | function resizeWidth() 38 | { 39 | var windowWidth = $(window).width() + "px"; 40 | var sidenavWidth = $(sidenav).outerWidth(); 41 | content.css({marginLeft:parseInt(sidenavWidth)+"px"}); 42 | writeCookie('width',sidenavWidth, null); 43 | } 44 | 45 | function restoreWidth(navWidth) 46 | { 47 | var windowWidth = $(window).width() + "px"; 48 | content.css({marginLeft:parseInt(navWidth)+6+"px"}); 49 | sidenav.css({width:navWidth + "px"}); 50 | } 51 | 52 | function resizeHeight() 53 | { 54 | var headerHeight = header.outerHeight(); 55 | var footerHeight = footer.outerHeight(); 56 | var windowHeight = $(window).height() - headerHeight - footerHeight; 57 | content.css({height:windowHeight + "px"}); 58 | navtree.css({height:windowHeight + "px"}); 59 | sidenav.css({height:windowHeight + "px",top: headerHeight+"px"}); 60 | } 61 | 62 | function initResizable() 63 | { 64 | header = $("#top"); 65 | sidenav = $("#side-nav"); 66 | content = $("#doc-content"); 67 | navtree = $("#nav-tree"); 68 | footer = $("#nav-path"); 69 | $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); 70 | $(window).resize(function() { resizeHeight(); }); 71 | var width = readCookie('width'); 72 | if (width) { restoreWidth(width); } else { resizeWidth(); } 73 | resizeHeight(); 74 | var url = location.href; 75 | var i=url.indexOf("#"); 76 | if (i>=0) window.location.hash=url.substr(i); 77 | var _preventDefault = function(evt) { evt.preventDefault(); }; 78 | $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); 79 | $(document).bind('touchmove',function(e){ 80 | var device = navigator.userAgent.toLowerCase(); 81 | var ios = device.match(/(iphone|ipod|ipad)/); 82 | if (ios) { 83 | try { 84 | var target = e.target; 85 | while (target) { 86 | if ($(target).css('-webkit-overflow-scrolling')=='touch') return; 87 | target = target.parentNode; 88 | } 89 | e.preventDefault(); 90 | } catch(err) { 91 | e.preventDefault(); 92 | } 93 | } 94 | }); 95 | } 96 | 97 | 98 | -------------------------------------------------------------------------------- /documentation/html/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_5fio_5fpng_5ferr_5fs',['_io_png_err_s',['../struct__io__png__err__s.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_10.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['y',['y',['../classami_1_1point2d.html#a9baf43c37e167ce9d90e0e623e9070e1',1,'ami::point2d']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/all_11.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eimage',['~image',['../classami_1_1image.html#a2fdab6b03687ecf6bd4eda5aec90f0b6',1,'ami::image']]], 4 | ['_7eline_5fpoints',['~line_points',['../classami_1_1line__points.html#aeb4c34bfe542d226fa45eb8b7e45810e',1,'ami::line_points']]], 5 | ['_7esubpixel_5fimage_5fcontours',['~subpixel_image_contours',['../classami_1_1subpixel__image__contours.html#a58eae4b903dcc4dbf88119b3c7b277eb',1,'ami::subpixel_image_contours']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /documentation/html/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['build_5findex',['build_index',['../classami_1_1subpixel__image__contours.html#af83108445e0b9f53b2db11e3fe2f4d90',1,'ami::subpixel_image_contours']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['canny',['canny',['../filters_8h.html#a03cc9f11aeaf893008bf8713d37a1325',1,'canny(ami::image< T > input, ami::image< T > &output, float *seno, float *coseno, int *x, int *y, float per_low, float per_high): filters.h'],['../filters_8h.html#a440b593d3c08771234e00d2d1299440f',1,'canny(ami::image< T > input, ami::image< T > &edges, float canny_low_threshold, float canny_high_threshold): filters.h']]], 4 | ['clean',['clean',['../classami_1_1subpixel__image__contours.html#ac1072680e4a337a07a3c7acf90c8e34f',1,'ami::subpixel_image_contours']]], 5 | ['clear',['clear',['../classami_1_1image.html#aaa344b24143551df56dcb86e345ce9f4',1,'ami::image']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /documentation/html/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['distance',['distance',['../classami_1_1line.html#a3007c3f6cbff22482e439c2e218a31cd',1,'ami::line::distance()'],['../classami_1_1line__points.html#aad872ac7610dbad57003bf6e3f31f4cd',1,'ami::line_points::distance()']]], 4 | ['draw_5fcercle',['draw_cercle',['../classami_1_1image__draw.html#a87a917477afb8249f72a2a6514ecb361',1,'ami::image_draw']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /documentation/html/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['evaluation',['evaluation',['../classami_1_1lens__distortion__model.html#a469de0e5e24be6a07d40932873e0d029',1,'ami::lens_distortion_model::evaluation(const point2d< double > &p) const '],['../classami_1_1lens__distortion__model.html#a6423ccf91de7b75b5a5b1e59af09f789',1,'ami::lens_distortion_model::evaluation(point2d< double > &p)'],['../classami_1_1line.html#a28b4985152d84c31e2070a78477a9b80',1,'ami::line::evaluation()'],['../classami_1_1line__points.html#a9f30a3eef7bed813b0c85f5665323e51',1,'ami::line_points::evaluation()']]], 4 | ['evaluation_5fquotient',['evaluation_quotient',['../classami_1_1lens__distortion__model.html#a3a4e643804a7f7f5ed55a4ba3fcad5cd',1,'ami::lens_distortion_model::evaluation_quotient(const point2d< double > &p) const '],['../classami_1_1lens__distortion__model.html#ae315b601e764d4e8a80ec1e15d9beeef',1,'ami::lens_distortion_model::evaluation_quotient(point2d< double > &p)']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /documentation/html/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['filters_2eh',['filters.h',['../filters_8h.html',1,'']]], 4 | ['find_5fnearest_5fpoint',['find_nearest_point',['../classami_1_1point2d.html#ade759b6d1a17c99c07d3f2ca52b87525',1,'ami::point2d']]], 5 | ['find_5fnearest_5fsubpixel',['find_nearest_subpixel',['../classami_1_1subpixel__image__contours.html#a2d13fe56c19b54219aa64ade292d2efa',1,'ami::subpixel_image_contours']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /documentation/html/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['gauss_5fconv',['gauss_conv',['../filters_8h.html#a4899020779ab45f62d29161cfa6e35bf',1,'filters.h']]], 4 | ['get_5fa',['get_a',['../classami_1_1line.html#a74707fff1160c64e580cb85863d67fba',1,'ami::line::get_a()'],['../classami_1_1line__points.html#ab6e977a6cdb80e5c8865df02eb403fc4',1,'ami::line_points::get_a()']]], 5 | ['get_5fabc',['get_abc',['../classami_1_1line.html#a8be304bacf666adebde454030197a285',1,'ami::line::get_abc()'],['../classami_1_1line__points.html#a58cfc14b0d3cb551e3971bd558fee973',1,'ami::line_points::get_abc()']]], 6 | ['get_5fb',['get_b',['../classami_1_1line.html#a39b39672f80ecfbbe9719af3718b96fd',1,'ami::line::get_b()'],['../classami_1_1line__points.html#acfac4eabdb124c7c7bc596c77b404590',1,'ami::line_points::get_b()']]], 7 | ['get_5fc',['get_c',['../classami_1_1line.html#abb1b1874dc514fe3800f231ffeae2462',1,'ami::line::get_c()'],['../classami_1_1line__points.html#a4c1046c33f74a7f62005da01df70f4b9',1,'ami::line_points::get_c()'],['../classami_1_1subpixel__image__contours.html#a5e5a6a1588e3138c1b5a5c5984fe8c31',1,'ami::subpixel_image_contours::get_c()']]], 8 | ['get_5fcoseno',['get_coseno',['../classami_1_1subpixel__image__contours.html#aa27b46bc051c14b2361b4667d8298ac4',1,'ami::subpixel_image_contours']]], 9 | ['get_5fd',['get_d',['../classami_1_1lens__distortion__model.html#aa3bf1b7d6c6070d5f06257d3067df530',1,'ami::lens_distortion_model::get_d()'],['../classami_1_1subpixel__image__contours.html#a25820d38b266c3cfe1507ff38dad3788',1,'ami::subpixel_image_contours::get_d()']]], 10 | ['get_5fdistorsion_5fcenter',['get_distorsion_center',['../classami_1_1image__primitives.html#a67f53afe49964ec3f40cd5ffdaea1c11',1,'ami::image_primitives']]], 11 | ['get_5fdistortion',['get_distortion',['../classami_1_1image__primitives.html#a3c7f68f3130a34e7cb25de6469f4828f',1,'ami::image_primitives']]], 12 | ['get_5fdistortion_5fcenter',['get_distortion_center',['../classami_1_1lens__distortion__model.html#ad6707ff617a79aabd382b470d709ab66',1,'ami::lens_distortion_model']]], 13 | ['get_5fheight',['get_height',['../classami_1_1subpixel__image__contours.html#a7b5a498c6c864e3050041e45b0c4de24',1,'ami::subpixel_image_contours']]], 14 | ['get_5fhistogram',['get_histogram',['../classami_1_1image.html#a760649afa0099f411f0805fe9f72bff1',1,'ami::image']]], 15 | ['get_5findex',['get_index',['../classami_1_1subpixel__image__contours.html#a8a5ce6c26a1bbd43179845adaccbcf78',1,'ami::subpixel_image_contours']]], 16 | ['get_5flines',['get_lines',['../classami_1_1image__primitives.html#a00306150f24bf1e3867dfbaba87635f4',1,'ami::image_primitives']]], 17 | ['get_5fmax_5fmin_5fpoints',['get_max_min_points',['../classami_1_1line__points.html#aab2d75506dcbe7ce4b3c8712a7101e60',1,'ami::line_points']]], 18 | ['get_5fpoints',['get_points',['../classami_1_1image__primitives.html#a55df6d6639bd7d4e455af3fab6f9d8e1',1,'ami::image_primitives::get_points()'],['../classami_1_1line__points.html#a3fe0b931929453480ce8055cb2e741e4',1,'ami::line_points::get_points()']]], 19 | ['get_5frect',['get_rect',['../classami_1_1line__points.html#ab53a2b24164936559a79f61681b25d53',1,'ami::line_points']]], 20 | ['get_5fseno',['get_seno',['../classami_1_1subpixel__image__contours.html#aae2b208b27d3b7f1fb9bf8394e380d07',1,'ami::subpixel_image_contours']]], 21 | ['get_5fvalue',['get_value',['../classami_1_1image.html#a6ad968cdfd9d1956c9e219847ce398b5',1,'ami::image']]], 22 | ['get_5fwidth',['get_width',['../classami_1_1subpixel__image__contours.html#aa3d6eeb112466cb13ae23c6885cb21e4',1,'ami::subpixel_image_contours']]], 23 | ['get_5fx',['get_x',['../classami_1_1subpixel__image__contours.html#a697031009595330ff10d8f51cf8c4ee3',1,'ami::subpixel_image_contours']]], 24 | ['get_5fy',['get_y',['../classami_1_1subpixel__image__contours.html#aa26905072455cd982f37865eab378939',1,'ami::subpixel_image_contours']]], 25 | ['grad',['grad',['../filters_8h.html#adf7f58cebfbff0496de30b7867b344a6',1,'filters.h']]] 26 | ]; 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['image',['image',['../classami_1_1image.html',1,'ami']]], 4 | ['image',['image',['../classami_1_1image.html#a1f1e7d6cb7245fa08d68e0082b68391c',1,'ami::image::image()'],['../classami_1_1image.html#a39fbeb547215d317e7888ac5af9b061f',1,'ami::image::image(const int width, const int height)'],['../classami_1_1image.html#ab552ecfdbd18a9697fbb89c50c9553f4',1,'ami::image::image(const T *vector, const int width, const int height, const int channels)'],['../classami_1_1image.html#a653ce786751666271b0e86dfa6ca1d32',1,'ami::image::image(const int width, const int height, const int nChannels, const T &a)'],['../classami_1_1image.html#a0c8aa7efec3f9e9ac0b966771324981b',1,'ami::image::image(const int width, const int height, const T &a, const T &b, const T &c)'],['../classami_1_1image.html#a572313dfa073a9f5109d59b7d66a7734',1,'ami::image::image(const int width, const int height, const int nChannels)'],['../classami_1_1image.html#a08be4803d35a0c66594f8df8ca5e1621',1,'ami::image::image(std::string name)'],['../classami_1_1image.html#a8eeb2b270adb25b77ac54ad59c3388dc',1,'ami::image::image(const image< T > &img_in)']]], 5 | ['image_2eh',['image.h',['../image_8h.html',1,'']]], 6 | ['image_5fdraw',['image_draw',['../classami_1_1image__draw.html',1,'ami']]], 7 | ['image_5fdraw_2eh',['image_draw.h',['../image__draw_8h.html',1,'']]], 8 | ['image_5fprimitives',['image_primitives',['../classami_1_1image__primitives.html',1,'ami']]], 9 | ['image_5fprimitives_2eh',['image_primitives.h',['../image__primitives_8h.html',1,'']]], 10 | ['imagemirrored',['imageMirrored',['../classami_1_1image.html#a66962530e6bfa7c7f58da77648d56076',1,'ami::image']]], 11 | ['init',['init',['../classami_1_1image.html#abd72f281d1cc4f69ea92f654afa4aacc',1,'ami::image']]], 12 | ['inverse_5fevaluation',['inverse_evaluation',['../classami_1_1lens__distortion__model.html#aacffec5d4fa3dfe4f9c7737cb29b4eb7',1,'ami::lens_distortion_model::inverse_evaluation(const point2d< double > &p) const '],['../classami_1_1lens__distortion__model.html#a0d74927240273c79e3fee67737d530a6',1,'ami::lens_distortion_model::inverse_evaluation(point2d< double > &p)']]], 13 | ['inverse_5fevaluation_5ffast',['inverse_evaluation_fast',['../classami_1_1lens__distortion__model.html#aa77d4400b144e7f080084e4e94ab95e0',1,'ami::lens_distortion_model']]], 14 | ['inverse_5fevaluation_5fquotient',['inverse_evaluation_quotient',['../classami_1_1lens__distortion__model.html#aa697fd2f2de7bb80e7b06f871b165a12',1,'ami::lens_distortion_model::inverse_evaluation_quotient(const point2d< double > &p) const '],['../classami_1_1lens__distortion__model.html#ac25d0cb8fc7f4bc92693061c388868c6',1,'ami::lens_distortion_model::inverse_evaluation_quotient(point2d< double > &p)']]] 15 | ]; 16 | -------------------------------------------------------------------------------- /documentation/html/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['lens_5fdistortion_2ecpp',['lens_distortion.cpp',['../lens__distortion_8cpp.html',1,'']]], 4 | ['lens_5fdistortion_2eh',['lens_distortion.h',['../lens__distortion_8h.html',1,'']]], 5 | ['lens_5fdistortion_5fcorrection_5f2p_5fiterative_5foptimization_2ecpp',['lens_distortion_correction_2p_iterative_optimization.cpp',['../lens__distortion__correction__2p__iterative__optimization_8cpp.html',1,'']]], 6 | ['lens_5fdistortion_5fmodel',['lens_distortion_model',['../classami_1_1lens__distortion__model.html',1,'ami']]], 7 | ['lens_5fdistortion_5fmodel',['lens_distortion_model',['../classami_1_1lens__distortion__model.html#a8dcc117b8df0184b99a268e3f74e953e',1,'ami::lens_distortion_model']]], 8 | ['lens_5fdistortion_5fmodel_2ecpp',['lens_distortion_model.cpp',['../lens__distortion__model_8cpp.html',1,'']]], 9 | ['lens_5fdistortion_5fmodel_2eh',['lens_distortion_model.h',['../lens__distortion__model_8h.html',1,'']]], 10 | ['line',['line',['../classami_1_1line.html#af2f8eec0e9524c0fad23fb164cbbf957',1,'ami::line']]], 11 | ['line',['line',['../classami_1_1line.html',1,'ami']]], 12 | ['line_2eh',['line.h',['../line_8h.html',1,'']]], 13 | ['line_5fpoints',['line_points',['../classami_1_1line__points.html#a75330274b354c43e8bef1f29ac6e400c',1,'ami::line_points::line_points()'],['../classami_1_1line__points.html#aa911bb17bdfb71e684cd61fb183bb643',1,'ami::line_points::line_points(double a, double b, double c)']]], 14 | ['line_5fpoints',['line_points',['../classami_1_1line__points.html',1,'ami']]], 15 | ['line_5fpoints_2ecpp',['line_points.cpp',['../line__points_8cpp.html',1,'']]], 16 | ['line_5fpoints_2eh',['line_points.h',['../line__points_8h.html',1,'']]], 17 | ['linear_5ftransform',['linear_transform',['../classami_1_1image.html#a980de85d1160bc431b9f6c5e9bef9f70',1,'ami::image']]] 18 | ]; 19 | -------------------------------------------------------------------------------- /documentation/html/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['operator_28_29',['operator()',['../classami_1_1image.html#abb9cd9e3ce12f9d8da4d264814332526',1,'ami::image']]], 4 | ['operator_3d',['operator=',['../classami_1_1image.html#a00f573022bd8e69a5c61f3372a8d35d2',1,'ami::image']]], 5 | ['operator_5b_5d',['operator[]',['../classami_1_1image.html#af71991fe782d4fea2939379ad6dc4ad1',1,'ami::image::operator[](const int &i)'],['../classami_1_1image.html#ad9334b5dfa67389de92020764326b56c',1,'ami::image::operator[](const int &i) const ']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /documentation/html/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['point2d',['point2d',['../classami_1_1point2d.html',1,'ami']]], 4 | ['point2d_2eh',['point2d.h',['../point2d_8h.html',1,'']]], 5 | ['point2d_3c_20double_20_3e',['point2d< double >',['../classami_1_1point2d.html',1,'ami']]], 6 | ['points_5fto_5fequation',['points_to_equation',['../classami_1_1line__points.html#ad9f1f885954ce4f96fa1741cfbdc0427',1,'ami::line_points']]], 7 | ['projected_5f3dpoints',['projected_3dpoints',['../classami_1_1image__primitives.html#aadd919e1b7306926000739b72d8d2406',1,'ami::image_primitives']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /documentation/html/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['read',['read',['../classami_1_1image.html#a26370abafef955b1129eeb15103e65f5',1,'ami::image::read()'],['../classami_1_1lens__distortion__model.html#a29e576a12b99e392405846757d59b98f',1,'ami::lens_distortion_model::read()']]], 4 | ['reset',['reset',['../classami_1_1lens__distortion__model.html#a4b66415a706f5c0e028e39ed3fd09c9a',1,'ami::lens_distortion_model']]], 5 | ['resize',['resize',['../classami_1_1image.html#a42447010fa2c6e93086db8de0c9c0c05',1,'ami::image']]], 6 | ['rgb_5fto_5fhsv',['rgb_to_hsv',['../classami_1_1image.html#a1de87be46608336f7d9ea55d87ba5811',1,'ami::image']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /documentation/html/search/all_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['sampling',['sampling',['../classami_1_1image.html#a3195bb02e6d64e726fea7bf6499f8e25',1,'ami::image']]], 4 | ['set_5fa',['set_a',['../classami_1_1line.html#a6b5836d222cb2e93a27ecf0c0e9c2736',1,'ami::line::set_a()'],['../classami_1_1line__points.html#af5901c9e8e19b656d19cac60f5225677',1,'ami::line_points::set_a()']]], 5 | ['set_5fabc',['set_abc',['../classami_1_1line.html#a502d9597349c46847ca4745ab36bb5ac',1,'ami::line::set_abc()'],['../classami_1_1line__points.html#a2b3583405fdf133551f67791932cd38b',1,'ami::line_points::set_abc()']]], 6 | ['set_5fb',['set_b',['../classami_1_1line.html#a6f77e89cc2f874c2fc7a406ed6cba80d',1,'ami::line::set_b()'],['../classami_1_1line__points.html#a75869fc46328ed887dda3c62075b435f',1,'ami::line_points::set_b()']]], 7 | ['set_5fc',['set_c',['../classami_1_1line.html#a0a676d2155079a95e5f50e45c8f8c8dc',1,'ami::line::set_c()'],['../classami_1_1line__points.html#ac8a739f18552e5639e8d6f50eeb95727',1,'ami::line_points::set_c()'],['../classami_1_1subpixel__image__contours.html#a4a01141bfb71c32156b468d456462b08',1,'ami::subpixel_image_contours::set_c()']]], 8 | ['set_5fcoseno',['set_coseno',['../classami_1_1subpixel__image__contours.html#ab77ec2b3735ba182e0ea051f61dabef5',1,'ami::subpixel_image_contours']]], 9 | ['set_5fd',['set_d',['../classami_1_1lens__distortion__model.html#a486a939854d7c4cb63869f1c87761cfe',1,'ami::lens_distortion_model::set_d()'],['../classami_1_1subpixel__image__contours.html#adec5af3c3b1458111d8c244eb73b272c',1,'ami::subpixel_image_contours::set_d()']]], 10 | ['set_5fdistortion',['set_distortion',['../classami_1_1image__primitives.html#a7fbca2f9de4fd91f6217c1f5cb7e9ad5',1,'ami::image_primitives']]], 11 | ['set_5fdistortion_5fcenter',['set_distortion_center',['../classami_1_1lens__distortion__model.html#a3a57273cd5fb8f0222de607cde7e4cb3',1,'ami::lens_distortion_model']]], 12 | ['set_5fheight',['set_height',['../classami_1_1subpixel__image__contours.html#a316951040a4215778b5835b842db58c7',1,'ami::subpixel_image_contours']]], 13 | ['set_5findex',['set_index',['../classami_1_1subpixel__image__contours.html#a4b6c163181a85996cca41d16bafaab23',1,'ami::subpixel_image_contours']]], 14 | ['set_5flines',['set_lines',['../classami_1_1image__primitives.html#a17975edd4835b32b26f2f4cadc43395e',1,'ami::image_primitives']]], 15 | ['set_5fnchannels',['set_nchannels',['../classami_1_1image.html#aaa204f90e88c58b44ebf2a75fa63a568',1,'ami::image']]], 16 | ['set_5fpoints',['set_points',['../classami_1_1image__primitives.html#aff0dbf6e83ccd5263778c7cf93e33e8c',1,'ami::image_primitives::set_points()'],['../classami_1_1line__points.html#a0be7366c6a5e78af0fc7f060df18da49',1,'ami::line_points::set_points()']]], 17 | ['set_5froi',['set_roi',['../classami_1_1image.html#ae2339e833dc0abe3b22fca22259542ee',1,'ami::image::set_roi(const int x0, const int x1, const int y0, const int y1)'],['../classami_1_1image.html#a58b1f192005c428b6d89babed865ca4c',1,'ami::image::set_roi(const int x0, const int x1, const int y0, const int y1, const int c0, const int c1)'],['../classami_1_1image.html#a50eaa70301af80e22117d80a1f7de250',1,'ami::image::set_roi(const std::vector< int > roi)']]], 18 | ['set_5fseno',['set_seno',['../classami_1_1subpixel__image__contours.html#a58944cbf50e3641ed5388b57470ac0cc',1,'ami::subpixel_image_contours']]], 19 | ['set_5fsize',['set_size',['../classami_1_1image.html#a30aee6c532258c755ce456fd81934b06',1,'ami::image']]], 20 | ['set_5fvalue',['set_value',['../classami_1_1image.html#adb0b3c66926df9014068786d2b3a4cfe',1,'ami::image']]], 21 | ['set_5fwidth',['set_width',['../classami_1_1subpixel__image__contours.html#a8ea86cbb1f5492073524d0e592653a12',1,'ami::subpixel_image_contours']]], 22 | ['set_5fx',['set_x',['../classami_1_1subpixel__image__contours.html#a9601a23085cac91cfa1d9ebfa3c25e41',1,'ami::subpixel_image_contours']]], 23 | ['set_5fy',['set_y',['../classami_1_1subpixel__image__contours.html#a6c66b228641cbb7f31d54cc8a9c152a0',1,'ami::subpixel_image_contours']]], 24 | ['subpixel_5fempty',['subpixel_empty',['../classami_1_1subpixel__image__contours.html#a8b75955d37b08ffb01517141ac12ff05',1,'ami::subpixel_image_contours']]], 25 | ['subpixel_5fimage_5fcontours',['subpixel_image_contours',['../classami_1_1subpixel__image__contours.html',1,'ami']]], 26 | ['subpixel_5fimage_5fcontours',['subpixel_image_contours',['../classami_1_1subpixel__image__contours.html#aa624ea5908800d9ea797753d9b5bf95a',1,'ami::subpixel_image_contours::subpixel_image_contours()'],['../classami_1_1subpixel__image__contours.html#a6e83ba777e5c122002431d7f228b3ac5',1,'ami::subpixel_image_contours::subpixel_image_contours(int width_c, int height_c)'],['../classami_1_1subpixel__image__contours.html#ae269667b2fd0f568d0716a050659c557',1,'ami::subpixel_image_contours::subpixel_image_contours(const subpixel_image_contours &)']]], 27 | ['subpixel_5fimage_5fcontours_2ecpp',['subpixel_image_contours.cpp',['../subpixel__image__contours_8cpp.html',1,'']]], 28 | ['subpixel_5fimage_5fcontours_2eh',['subpixel_image_contours.h',['../subpixel__image__contours_8h.html',1,'']]] 29 | ]; 30 | -------------------------------------------------------------------------------- /documentation/html/search/all_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['write',['write',['../classami_1_1image.html#a8ee8c0e0a2e1f22cbcc697a7b98f08cc',1,'ami::image::write()'],['../classami_1_1lens__distortion__model.html#aad8390068a641db24729eafe5e2f866f',1,'ami::lens_distortion_model::write()'],['../classami_1_1image__primitives.html#a503abc5eef5a9482170c9165c8631a3e',1,'ami::image_primitives::write()']]], 4 | ['write_5fbool',['write_bool',['../classami_1_1image.html#a5a973f8424e50e6b6c3ea457c16b35b9',1,'ami::image']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /documentation/html/search/all_f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/all_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['x',['x',['../classami_1_1point2d.html#a8c882e1ec18c63f069311d32fc2233c5',1,'ami::point2d']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_5fio_5fpng_5ferr_5fs',['_io_png_err_s',['../struct__io__png__err__s.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/classes_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/classes_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['image',['image',['../classami_1_1image.html',1,'ami']]], 4 | ['image_5fdraw',['image_draw',['../classami_1_1image__draw.html',1,'ami']]], 5 | ['image_5fprimitives',['image_primitives',['../classami_1_1image__primitives.html',1,'ami']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /documentation/html/search/classes_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/classes_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['lens_5fdistortion_5fmodel',['lens_distortion_model',['../classami_1_1lens__distortion__model.html',1,'ami']]], 4 | ['line',['line',['../classami_1_1line.html',1,'ami']]], 5 | ['line_5fpoints',['line_points',['../classami_1_1line__points.html',1,'ami']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /documentation/html/search/classes_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/classes_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['point2d',['point2d',['../classami_1_1point2d.html',1,'ami']]], 4 | ['point2d_3c_20double_20_3e',['point2d< double >',['../classami_1_1point2d.html',1,'ami']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /documentation/html/search/classes_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/classes_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['subpixel_5fimage_5fcontours',['subpixel_image_contours',['../classami_1_1subpixel__image__contours.html',1,'ami']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/search/close.png -------------------------------------------------------------------------------- /documentation/html/search/files_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/files_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['filters_2eh',['filters.h',['../filters_8h.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/files_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/files_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['image_2eh',['image.h',['../image_8h.html',1,'']]], 4 | ['image_5fdraw_2eh',['image_draw.h',['../image__draw_8h.html',1,'']]], 5 | ['image_5fprimitives_2eh',['image_primitives.h',['../image__primitives_8h.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /documentation/html/search/files_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/files_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['lens_5fdistortion_2ecpp',['lens_distortion.cpp',['../lens__distortion_8cpp.html',1,'']]], 4 | ['lens_5fdistortion_2eh',['lens_distortion.h',['../lens__distortion_8h.html',1,'']]], 5 | ['lens_5fdistortion_5fcorrection_5f2p_5fiterative_5foptimization_2ecpp',['lens_distortion_correction_2p_iterative_optimization.cpp',['../lens__distortion__correction__2p__iterative__optimization_8cpp.html',1,'']]], 6 | ['lens_5fdistortion_5fmodel_2ecpp',['lens_distortion_model.cpp',['../lens__distortion__model_8cpp.html',1,'']]], 7 | ['lens_5fdistortion_5fmodel_2eh',['lens_distortion_model.h',['../lens__distortion__model_8h.html',1,'']]], 8 | ['line_2eh',['line.h',['../line_8h.html',1,'']]], 9 | ['line_5fpoints_2ecpp',['line_points.cpp',['../line__points_8cpp.html',1,'']]], 10 | ['line_5fpoints_2eh',['line_points.h',['../line__points_8h.html',1,'']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /documentation/html/search/files_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/files_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['point2d_2eh',['point2d.h',['../point2d_8h.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/files_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/files_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['subpixel_5fimage_5fcontours_2ecpp',['subpixel_image_contours.cpp',['../subpixel__image__contours_8cpp.html',1,'']]], 4 | ['subpixel_5fimage_5fcontours_2eh',['subpixel_image_contours.h',['../subpixel__image__contours_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /documentation/html/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['build_5findex',['build_index',['../classami_1_1subpixel__image__contours.html#af83108445e0b9f53b2db11e3fe2f4d90',1,'ami::subpixel_image_contours']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['canny',['canny',['../filters_8h.html#a03cc9f11aeaf893008bf8713d37a1325',1,'canny(ami::image< T > input, ami::image< T > &output, float *seno, float *coseno, int *x, int *y, float per_low, float per_high): filters.h'],['../filters_8h.html#a440b593d3c08771234e00d2d1299440f',1,'canny(ami::image< T > input, ami::image< T > &edges, float canny_low_threshold, float canny_high_threshold): filters.h']]], 4 | ['clean',['clean',['../classami_1_1subpixel__image__contours.html#ac1072680e4a337a07a3c7acf90c8e34f',1,'ami::subpixel_image_contours']]], 5 | ['clear',['clear',['../classami_1_1image.html#aaa344b24143551df56dcb86e345ce9f4',1,'ami::image']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /documentation/html/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['distance',['distance',['../classami_1_1line.html#a3007c3f6cbff22482e439c2e218a31cd',1,'ami::line::distance()'],['../classami_1_1line__points.html#aad872ac7610dbad57003bf6e3f31f4cd',1,'ami::line_points::distance()']]], 4 | ['draw_5fcercle',['draw_cercle',['../classami_1_1image__draw.html#a87a917477afb8249f72a2a6514ecb361',1,'ami::image_draw']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /documentation/html/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['evaluation',['evaluation',['../classami_1_1lens__distortion__model.html#a469de0e5e24be6a07d40932873e0d029',1,'ami::lens_distortion_model::evaluation(const point2d< double > &p) const '],['../classami_1_1lens__distortion__model.html#a6423ccf91de7b75b5a5b1e59af09f789',1,'ami::lens_distortion_model::evaluation(point2d< double > &p)'],['../classami_1_1line.html#a28b4985152d84c31e2070a78477a9b80',1,'ami::line::evaluation()'],['../classami_1_1line__points.html#a9f30a3eef7bed813b0c85f5665323e51',1,'ami::line_points::evaluation()']]], 4 | ['evaluation_5fquotient',['evaluation_quotient',['../classami_1_1lens__distortion__model.html#a3a4e643804a7f7f5ed55a4ba3fcad5cd',1,'ami::lens_distortion_model::evaluation_quotient(const point2d< double > &p) const '],['../classami_1_1lens__distortion__model.html#ae315b601e764d4e8a80ec1e15d9beeef',1,'ami::lens_distortion_model::evaluation_quotient(point2d< double > &p)']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /documentation/html/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['find_5fnearest_5fpoint',['find_nearest_point',['../classami_1_1point2d.html#ade759b6d1a17c99c07d3f2ca52b87525',1,'ami::point2d']]], 4 | ['find_5fnearest_5fsubpixel',['find_nearest_subpixel',['../classami_1_1subpixel__image__contours.html#a2d13fe56c19b54219aa64ade292d2efa',1,'ami::subpixel_image_contours']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /documentation/html/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['gauss_5fconv',['gauss_conv',['../filters_8h.html#a4899020779ab45f62d29161cfa6e35bf',1,'filters.h']]], 4 | ['get_5fa',['get_a',['../classami_1_1line.html#a74707fff1160c64e580cb85863d67fba',1,'ami::line::get_a()'],['../classami_1_1line__points.html#ab6e977a6cdb80e5c8865df02eb403fc4',1,'ami::line_points::get_a()']]], 5 | ['get_5fabc',['get_abc',['../classami_1_1line.html#a8be304bacf666adebde454030197a285',1,'ami::line::get_abc()'],['../classami_1_1line__points.html#a58cfc14b0d3cb551e3971bd558fee973',1,'ami::line_points::get_abc()']]], 6 | ['get_5fb',['get_b',['../classami_1_1line.html#a39b39672f80ecfbbe9719af3718b96fd',1,'ami::line::get_b()'],['../classami_1_1line__points.html#acfac4eabdb124c7c7bc596c77b404590',1,'ami::line_points::get_b()']]], 7 | ['get_5fc',['get_c',['../classami_1_1line.html#abb1b1874dc514fe3800f231ffeae2462',1,'ami::line::get_c()'],['../classami_1_1line__points.html#a4c1046c33f74a7f62005da01df70f4b9',1,'ami::line_points::get_c()'],['../classami_1_1subpixel__image__contours.html#a5e5a6a1588e3138c1b5a5c5984fe8c31',1,'ami::subpixel_image_contours::get_c()']]], 8 | ['get_5fcoseno',['get_coseno',['../classami_1_1subpixel__image__contours.html#aa27b46bc051c14b2361b4667d8298ac4',1,'ami::subpixel_image_contours']]], 9 | ['get_5fd',['get_d',['../classami_1_1lens__distortion__model.html#aa3bf1b7d6c6070d5f06257d3067df530',1,'ami::lens_distortion_model::get_d()'],['../classami_1_1subpixel__image__contours.html#a25820d38b266c3cfe1507ff38dad3788',1,'ami::subpixel_image_contours::get_d()']]], 10 | ['get_5fdistorsion_5fcenter',['get_distorsion_center',['../classami_1_1image__primitives.html#a67f53afe49964ec3f40cd5ffdaea1c11',1,'ami::image_primitives']]], 11 | ['get_5fdistortion',['get_distortion',['../classami_1_1image__primitives.html#a3c7f68f3130a34e7cb25de6469f4828f',1,'ami::image_primitives']]], 12 | ['get_5fdistortion_5fcenter',['get_distortion_center',['../classami_1_1lens__distortion__model.html#ad6707ff617a79aabd382b470d709ab66',1,'ami::lens_distortion_model']]], 13 | ['get_5fheight',['get_height',['../classami_1_1subpixel__image__contours.html#a7b5a498c6c864e3050041e45b0c4de24',1,'ami::subpixel_image_contours']]], 14 | ['get_5fhistogram',['get_histogram',['../classami_1_1image.html#a760649afa0099f411f0805fe9f72bff1',1,'ami::image']]], 15 | ['get_5findex',['get_index',['../classami_1_1subpixel__image__contours.html#a8a5ce6c26a1bbd43179845adaccbcf78',1,'ami::subpixel_image_contours']]], 16 | ['get_5flines',['get_lines',['../classami_1_1image__primitives.html#a00306150f24bf1e3867dfbaba87635f4',1,'ami::image_primitives']]], 17 | ['get_5fmax_5fmin_5fpoints',['get_max_min_points',['../classami_1_1line__points.html#aab2d75506dcbe7ce4b3c8712a7101e60',1,'ami::line_points']]], 18 | ['get_5fpoints',['get_points',['../classami_1_1image__primitives.html#a55df6d6639bd7d4e455af3fab6f9d8e1',1,'ami::image_primitives::get_points()'],['../classami_1_1line__points.html#a3fe0b931929453480ce8055cb2e741e4',1,'ami::line_points::get_points()']]], 19 | ['get_5frect',['get_rect',['../classami_1_1line__points.html#ab53a2b24164936559a79f61681b25d53',1,'ami::line_points']]], 20 | ['get_5fseno',['get_seno',['../classami_1_1subpixel__image__contours.html#aae2b208b27d3b7f1fb9bf8394e380d07',1,'ami::subpixel_image_contours']]], 21 | ['get_5fvalue',['get_value',['../classami_1_1image.html#a6ad968cdfd9d1956c9e219847ce398b5',1,'ami::image']]], 22 | ['get_5fwidth',['get_width',['../classami_1_1subpixel__image__contours.html#aa3d6eeb112466cb13ae23c6885cb21e4',1,'ami::subpixel_image_contours']]], 23 | ['get_5fx',['get_x',['../classami_1_1subpixel__image__contours.html#a697031009595330ff10d8f51cf8c4ee3',1,'ami::subpixel_image_contours']]], 24 | ['get_5fy',['get_y',['../classami_1_1subpixel__image__contours.html#aa26905072455cd982f37865eab378939',1,'ami::subpixel_image_contours']]], 25 | ['grad',['grad',['../filters_8h.html#adf7f58cebfbff0496de30b7867b344a6',1,'filters.h']]] 26 | ]; 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['image',['image',['../classami_1_1image.html#a1f1e7d6cb7245fa08d68e0082b68391c',1,'ami::image::image()'],['../classami_1_1image.html#a39fbeb547215d317e7888ac5af9b061f',1,'ami::image::image(const int width, const int height)'],['../classami_1_1image.html#ab552ecfdbd18a9697fbb89c50c9553f4',1,'ami::image::image(const T *vector, const int width, const int height, const int channels)'],['../classami_1_1image.html#a653ce786751666271b0e86dfa6ca1d32',1,'ami::image::image(const int width, const int height, const int nChannels, const T &a)'],['../classami_1_1image.html#a0c8aa7efec3f9e9ac0b966771324981b',1,'ami::image::image(const int width, const int height, const T &a, const T &b, const T &c)'],['../classami_1_1image.html#a572313dfa073a9f5109d59b7d66a7734',1,'ami::image::image(const int width, const int height, const int nChannels)'],['../classami_1_1image.html#a08be4803d35a0c66594f8df8ca5e1621',1,'ami::image::image(std::string name)'],['../classami_1_1image.html#a8eeb2b270adb25b77ac54ad59c3388dc',1,'ami::image::image(const image< T > &img_in)']]], 4 | ['imagemirrored',['imageMirrored',['../classami_1_1image.html#a66962530e6bfa7c7f58da77648d56076',1,'ami::image']]], 5 | ['init',['init',['../classami_1_1image.html#abd72f281d1cc4f69ea92f654afa4aacc',1,'ami::image']]], 6 | ['inverse_5fevaluation',['inverse_evaluation',['../classami_1_1lens__distortion__model.html#aacffec5d4fa3dfe4f9c7737cb29b4eb7',1,'ami::lens_distortion_model::inverse_evaluation(const point2d< double > &p) const '],['../classami_1_1lens__distortion__model.html#a0d74927240273c79e3fee67737d530a6',1,'ami::lens_distortion_model::inverse_evaluation(point2d< double > &p)']]], 7 | ['inverse_5fevaluation_5ffast',['inverse_evaluation_fast',['../classami_1_1lens__distortion__model.html#aa77d4400b144e7f080084e4e94ab95e0',1,'ami::lens_distortion_model']]], 8 | ['inverse_5fevaluation_5fquotient',['inverse_evaluation_quotient',['../classami_1_1lens__distortion__model.html#aa697fd2f2de7bb80e7b06f871b165a12',1,'ami::lens_distortion_model::inverse_evaluation_quotient(const point2d< double > &p) const '],['../classami_1_1lens__distortion__model.html#ac25d0cb8fc7f4bc92693061c388868c6',1,'ami::lens_distortion_model::inverse_evaluation_quotient(point2d< double > &p)']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /documentation/html/search/functions_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['lens_5fdistortion_5fmodel',['lens_distortion_model',['../classami_1_1lens__distortion__model.html#a8dcc117b8df0184b99a268e3f74e953e',1,'ami::lens_distortion_model']]], 4 | ['line',['line',['../classami_1_1line.html#af2f8eec0e9524c0fad23fb164cbbf957',1,'ami::line']]], 5 | ['line_5fpoints',['line_points',['../classami_1_1line__points.html#a75330274b354c43e8bef1f29ac6e400c',1,'ami::line_points::line_points()'],['../classami_1_1line__points.html#aa911bb17bdfb71e684cd61fb183bb643',1,'ami::line_points::line_points(double a, double b, double c)']]], 6 | ['linear_5ftransform',['linear_transform',['../classami_1_1image.html#a980de85d1160bc431b9f6c5e9bef9f70',1,'ami::image']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /documentation/html/search/functions_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['operator_28_29',['operator()',['../classami_1_1image.html#abb9cd9e3ce12f9d8da4d264814332526',1,'ami::image']]], 4 | ['operator_3d',['operator=',['../classami_1_1image.html#a00f573022bd8e69a5c61f3372a8d35d2',1,'ami::image']]], 5 | ['operator_5b_5d',['operator[]',['../classami_1_1image.html#af71991fe782d4fea2939379ad6dc4ad1',1,'ami::image::operator[](const int &i)'],['../classami_1_1image.html#ad9334b5dfa67389de92020764326b56c',1,'ami::image::operator[](const int &i) const ']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /documentation/html/search/functions_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['points_5fto_5fequation',['points_to_equation',['../classami_1_1line__points.html#ad9f1f885954ce4f96fa1741cfbdc0427',1,'ami::line_points']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/functions_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['read',['read',['../classami_1_1image.html#a26370abafef955b1129eeb15103e65f5',1,'ami::image::read()'],['../classami_1_1lens__distortion__model.html#a29e576a12b99e392405846757d59b98f',1,'ami::lens_distortion_model::read()']]], 4 | ['reset',['reset',['../classami_1_1lens__distortion__model.html#a4b66415a706f5c0e028e39ed3fd09c9a',1,'ami::lens_distortion_model']]], 5 | ['resize',['resize',['../classami_1_1image.html#a42447010fa2c6e93086db8de0c9c0c05',1,'ami::image']]], 6 | ['rgb_5fto_5fhsv',['rgb_to_hsv',['../classami_1_1image.html#a1de87be46608336f7d9ea55d87ba5811',1,'ami::image']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /documentation/html/search/functions_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['sampling',['sampling',['../classami_1_1image.html#a3195bb02e6d64e726fea7bf6499f8e25',1,'ami::image']]], 4 | ['set_5fa',['set_a',['../classami_1_1line.html#a6b5836d222cb2e93a27ecf0c0e9c2736',1,'ami::line::set_a()'],['../classami_1_1line__points.html#af5901c9e8e19b656d19cac60f5225677',1,'ami::line_points::set_a()']]], 5 | ['set_5fabc',['set_abc',['../classami_1_1line.html#a502d9597349c46847ca4745ab36bb5ac',1,'ami::line::set_abc()'],['../classami_1_1line__points.html#a2b3583405fdf133551f67791932cd38b',1,'ami::line_points::set_abc()']]], 6 | ['set_5fb',['set_b',['../classami_1_1line.html#a6f77e89cc2f874c2fc7a406ed6cba80d',1,'ami::line::set_b()'],['../classami_1_1line__points.html#a75869fc46328ed887dda3c62075b435f',1,'ami::line_points::set_b()']]], 7 | ['set_5fc',['set_c',['../classami_1_1line.html#a0a676d2155079a95e5f50e45c8f8c8dc',1,'ami::line::set_c()'],['../classami_1_1line__points.html#ac8a739f18552e5639e8d6f50eeb95727',1,'ami::line_points::set_c()'],['../classami_1_1subpixel__image__contours.html#a4a01141bfb71c32156b468d456462b08',1,'ami::subpixel_image_contours::set_c()']]], 8 | ['set_5fcoseno',['set_coseno',['../classami_1_1subpixel__image__contours.html#ab77ec2b3735ba182e0ea051f61dabef5',1,'ami::subpixel_image_contours']]], 9 | ['set_5fd',['set_d',['../classami_1_1lens__distortion__model.html#a486a939854d7c4cb63869f1c87761cfe',1,'ami::lens_distortion_model::set_d()'],['../classami_1_1subpixel__image__contours.html#adec5af3c3b1458111d8c244eb73b272c',1,'ami::subpixel_image_contours::set_d()']]], 10 | ['set_5fdistortion',['set_distortion',['../classami_1_1image__primitives.html#a7fbca2f9de4fd91f6217c1f5cb7e9ad5',1,'ami::image_primitives']]], 11 | ['set_5fdistortion_5fcenter',['set_distortion_center',['../classami_1_1lens__distortion__model.html#a3a57273cd5fb8f0222de607cde7e4cb3',1,'ami::lens_distortion_model']]], 12 | ['set_5fheight',['set_height',['../classami_1_1subpixel__image__contours.html#a316951040a4215778b5835b842db58c7',1,'ami::subpixel_image_contours']]], 13 | ['set_5findex',['set_index',['../classami_1_1subpixel__image__contours.html#a4b6c163181a85996cca41d16bafaab23',1,'ami::subpixel_image_contours']]], 14 | ['set_5flines',['set_lines',['../classami_1_1image__primitives.html#a17975edd4835b32b26f2f4cadc43395e',1,'ami::image_primitives']]], 15 | ['set_5fnchannels',['set_nchannels',['../classami_1_1image.html#aaa204f90e88c58b44ebf2a75fa63a568',1,'ami::image']]], 16 | ['set_5fpoints',['set_points',['../classami_1_1image__primitives.html#aff0dbf6e83ccd5263778c7cf93e33e8c',1,'ami::image_primitives::set_points()'],['../classami_1_1line__points.html#a0be7366c6a5e78af0fc7f060df18da49',1,'ami::line_points::set_points()']]], 17 | ['set_5froi',['set_roi',['../classami_1_1image.html#ae2339e833dc0abe3b22fca22259542ee',1,'ami::image::set_roi(const int x0, const int x1, const int y0, const int y1)'],['../classami_1_1image.html#a58b1f192005c428b6d89babed865ca4c',1,'ami::image::set_roi(const int x0, const int x1, const int y0, const int y1, const int c0, const int c1)'],['../classami_1_1image.html#a50eaa70301af80e22117d80a1f7de250',1,'ami::image::set_roi(const std::vector< int > roi)']]], 18 | ['set_5fseno',['set_seno',['../classami_1_1subpixel__image__contours.html#a58944cbf50e3641ed5388b57470ac0cc',1,'ami::subpixel_image_contours']]], 19 | ['set_5fsize',['set_size',['../classami_1_1image.html#a30aee6c532258c755ce456fd81934b06',1,'ami::image']]], 20 | ['set_5fvalue',['set_value',['../classami_1_1image.html#adb0b3c66926df9014068786d2b3a4cfe',1,'ami::image']]], 21 | ['set_5fwidth',['set_width',['../classami_1_1subpixel__image__contours.html#a8ea86cbb1f5492073524d0e592653a12',1,'ami::subpixel_image_contours']]], 22 | ['set_5fx',['set_x',['../classami_1_1subpixel__image__contours.html#a9601a23085cac91cfa1d9ebfa3c25e41',1,'ami::subpixel_image_contours']]], 23 | ['set_5fy',['set_y',['../classami_1_1subpixel__image__contours.html#a6c66b228641cbb7f31d54cc8a9c152a0',1,'ami::subpixel_image_contours']]], 24 | ['subpixel_5fempty',['subpixel_empty',['../classami_1_1subpixel__image__contours.html#a8b75955d37b08ffb01517141ac12ff05',1,'ami::subpixel_image_contours']]], 25 | ['subpixel_5fimage_5fcontours',['subpixel_image_contours',['../classami_1_1subpixel__image__contours.html#aa624ea5908800d9ea797753d9b5bf95a',1,'ami::subpixel_image_contours::subpixel_image_contours()'],['../classami_1_1subpixel__image__contours.html#a6e83ba777e5c122002431d7f228b3ac5',1,'ami::subpixel_image_contours::subpixel_image_contours(int width_c, int height_c)'],['../classami_1_1subpixel__image__contours.html#ae269667b2fd0f568d0716a050659c557',1,'ami::subpixel_image_contours::subpixel_image_contours(const subpixel_image_contours &)']]] 26 | ]; 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['write',['write',['../classami_1_1image.html#a8ee8c0e0a2e1f22cbcc697a7b98f08cc',1,'ami::image::write()'],['../classami_1_1lens__distortion__model.html#aad8390068a641db24729eafe5e2f866f',1,'ami::lens_distortion_model::write()'],['../classami_1_1image__primitives.html#a503abc5eef5a9482170c9165c8631a3e',1,'ami::image_primitives::write()']]], 4 | ['write_5fbool',['write_bool',['../classami_1_1image.html#a5a973f8424e50e6b6c3ea457c16b35b9',1,'ami::image']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /documentation/html/search/functions_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/functions_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eimage',['~image',['../classami_1_1image.html#a2fdab6b03687ecf6bd4eda5aec90f0b6',1,'ami::image']]], 4 | ['_7eline_5fpoints',['~line_points',['../classami_1_1line__points.html#aeb4c34bfe542d226fa45eb8b7e45810e',1,'ami::line_points']]], 5 | ['_7esubpixel_5fimage_5fcontours',['~subpixel_image_contours',['../classami_1_1subpixel__image__contours.html#a58eae4b903dcc4dbf88119b3c7b277eb',1,'ami::subpixel_image_contours']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /documentation/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/search/mag_sel.png -------------------------------------------------------------------------------- /documentation/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /documentation/html/search/search.css: -------------------------------------------------------------------------------- 1 | /*---------------- Search Box */ 2 | 3 | #FSearchBox { 4 | float: left; 5 | } 6 | 7 | #MSearchBox { 8 | white-space : nowrap; 9 | position: absolute; 10 | float: none; 11 | display: inline; 12 | margin-top: 8px; 13 | right: 0px; 14 | width: 170px; 15 | z-index: 102; 16 | background-color: white; 17 | } 18 | 19 | #MSearchBox .left 20 | { 21 | display:block; 22 | position:absolute; 23 | left:10px; 24 | width:20px; 25 | height:19px; 26 | background:url('search_l.png') no-repeat; 27 | background-position:right; 28 | } 29 | 30 | #MSearchSelect { 31 | display:block; 32 | position:absolute; 33 | width:20px; 34 | height:19px; 35 | } 36 | 37 | .left #MSearchSelect { 38 | left:4px; 39 | } 40 | 41 | .right #MSearchSelect { 42 | right:5px; 43 | } 44 | 45 | #MSearchField { 46 | display:block; 47 | position:absolute; 48 | height:19px; 49 | background:url('search_m.png') repeat-x; 50 | border:none; 51 | width:111px; 52 | margin-left:20px; 53 | padding-left:4px; 54 | color: #909090; 55 | outline: none; 56 | font: 9pt Arial, Verdana, sans-serif; 57 | } 58 | 59 | #FSearchBox #MSearchField { 60 | margin-left:15px; 61 | } 62 | 63 | #MSearchBox .right { 64 | display:block; 65 | position:absolute; 66 | right:10px; 67 | top:0px; 68 | width:20px; 69 | height:19px; 70 | background:url('search_r.png') no-repeat; 71 | background-position:left; 72 | } 73 | 74 | #MSearchClose { 75 | display: none; 76 | position: absolute; 77 | top: 4px; 78 | background : none; 79 | border: none; 80 | margin: 0px 4px 0px 0px; 81 | padding: 0px 0px; 82 | outline: none; 83 | } 84 | 85 | .left #MSearchClose { 86 | left: 6px; 87 | } 88 | 89 | .right #MSearchClose { 90 | right: 2px; 91 | } 92 | 93 | .MSearchBoxActive #MSearchField { 94 | color: #000000; 95 | } 96 | 97 | /*---------------- Search filter selection */ 98 | 99 | #MSearchSelectWindow { 100 | display: none; 101 | position: absolute; 102 | left: 0; top: 0; 103 | border: 1px solid #90A5CE; 104 | background-color: #F9FAFC; 105 | z-index: 1; 106 | padding-top: 4px; 107 | padding-bottom: 4px; 108 | -moz-border-radius: 4px; 109 | -webkit-border-top-left-radius: 4px; 110 | -webkit-border-top-right-radius: 4px; 111 | -webkit-border-bottom-left-radius: 4px; 112 | -webkit-border-bottom-right-radius: 4px; 113 | -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); 114 | } 115 | 116 | .SelectItem { 117 | font: 8pt Arial, Verdana, sans-serif; 118 | padding-left: 2px; 119 | padding-right: 12px; 120 | border: 0px; 121 | } 122 | 123 | span.SelectionMark { 124 | margin-right: 4px; 125 | font-family: monospace; 126 | outline-style: none; 127 | text-decoration: none; 128 | } 129 | 130 | a.SelectItem { 131 | display: block; 132 | outline-style: none; 133 | color: #000000; 134 | text-decoration: none; 135 | padding-left: 6px; 136 | padding-right: 12px; 137 | } 138 | 139 | a.SelectItem:focus, 140 | a.SelectItem:active { 141 | color: #000000; 142 | outline-style: none; 143 | text-decoration: none; 144 | } 145 | 146 | a.SelectItem:hover { 147 | color: #FFFFFF; 148 | background-color: #3D578C; 149 | outline-style: none; 150 | text-decoration: none; 151 | cursor: pointer; 152 | display: block; 153 | } 154 | 155 | /*---------------- Search results window */ 156 | 157 | iframe#MSearchResults { 158 | width: 60ex; 159 | height: 15em; 160 | } 161 | 162 | #MSearchResultsWindow { 163 | display: none; 164 | position: absolute; 165 | left: 0; top: 0; 166 | border: 1px solid #000; 167 | background-color: #EEF1F7; 168 | } 169 | 170 | /* ----------------------------------- */ 171 | 172 | 173 | #SRIndex { 174 | clear:both; 175 | padding-bottom: 15px; 176 | } 177 | 178 | .SREntry { 179 | font-size: 10pt; 180 | padding-left: 1ex; 181 | } 182 | 183 | .SRPage .SREntry { 184 | font-size: 8pt; 185 | padding: 1px 5px; 186 | } 187 | 188 | body.SRPage { 189 | margin: 5px 2px; 190 | } 191 | 192 | .SRChildren { 193 | padding-left: 3ex; padding-bottom: .5em 194 | } 195 | 196 | .SRPage .SRChildren { 197 | display: none; 198 | } 199 | 200 | .SRSymbol { 201 | font-weight: bold; 202 | color: #425E97; 203 | font-family: Arial, Verdana, sans-serif; 204 | text-decoration: none; 205 | outline: none; 206 | } 207 | 208 | a.SRScope { 209 | display: block; 210 | color: #425E97; 211 | font-family: Arial, Verdana, sans-serif; 212 | text-decoration: none; 213 | outline: none; 214 | } 215 | 216 | a.SRSymbol:focus, a.SRSymbol:active, 217 | a.SRScope:focus, a.SRScope:active { 218 | text-decoration: underline; 219 | } 220 | 221 | span.SRScope { 222 | padding-left: 4px; 223 | } 224 | 225 | .SRPage .SRStatus { 226 | padding: 2px 5px; 227 | font-size: 8pt; 228 | font-style: italic; 229 | } 230 | 231 | .SRResult { 232 | display: none; 233 | } 234 | 235 | DIV.searchresults { 236 | margin-left: 10px; 237 | margin-right: 10px; 238 | } 239 | 240 | /*---------------- External search page results */ 241 | 242 | .searchresult { 243 | background-color: #F0F3F8; 244 | } 245 | 246 | .pages b { 247 | color: white; 248 | padding: 5px 5px 3px 5px; 249 | background-image: url("../tab_a.png"); 250 | background-repeat: repeat-x; 251 | text-shadow: 0 1px 1px #000000; 252 | } 253 | 254 | .pages { 255 | line-height: 17px; 256 | margin-left: 4px; 257 | text-decoration: none; 258 | } 259 | 260 | .hl { 261 | font-weight: bold; 262 | } 263 | 264 | #searchresults { 265 | margin-bottom: 20px; 266 | } 267 | 268 | .searchpages { 269 | margin-top: 10px; 270 | } 271 | 272 | -------------------------------------------------------------------------------- /documentation/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/search/search_l.png -------------------------------------------------------------------------------- /documentation/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/search/search_m.png -------------------------------------------------------------------------------- /documentation/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/search/search_r.png -------------------------------------------------------------------------------- /documentation/html/search/variables_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['projected_5f3dpoints',['projected_3dpoints',['../classami_1_1image__primitives.html#aadd919e1b7306926000739b72d8d2406',1,'ami::image_primitives']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/variables_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['x',['x',['../classami_1_1point2d.html#a8c882e1ec18c63f069311d32fc2233c5',1,'ami::point2d']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/search/variables_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /documentation/html/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['y',['y',['../classami_1_1point2d.html#a9baf43c37e167ce9d90e0e623e9070e1',1,'ami::point2d']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /documentation/html/struct__io__png__err__s.js: -------------------------------------------------------------------------------- 1 | var struct__io__png__err__s = 2 | [ 3 | [ "jmpbuf", "struct__io__png__err__s.html#a0bc9e6794945b41bdeabd5185d8c03b7", null ] 4 | ]; -------------------------------------------------------------------------------- /documentation/html/subpixel__image__contours_8cpp.js: -------------------------------------------------------------------------------- 1 | var subpixel__image__contours_8cpp = 2 | [ 3 | [ "AMI_DLL_CPP", "subpixel__image__contours_8cpp.html#ad7fc01ef164eea1d1e5d9027bc1e4d04", null ] 4 | ]; -------------------------------------------------------------------------------- /documentation/html/subpixel__image__contours_8h.js: -------------------------------------------------------------------------------- 1 | var subpixel__image__contours_8h = 2 | [ 3 | [ "subpixel_image_contours", "classami_1_1subpixel__image__contours.html", "classami_1_1subpixel__image__contours" ], 4 | [ "SUBPIXEL_IMAGE_CONTOURS_H", "subpixel__image__contours_8h.html#a22a3c93acfad2c983aae09b990ef4222", null ] 5 | ]; -------------------------------------------------------------------------------- /documentation/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/sync_off.png -------------------------------------------------------------------------------- /documentation/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/sync_on.png -------------------------------------------------------------------------------- /documentation/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/tab_a.png -------------------------------------------------------------------------------- /documentation/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/tab_b.png -------------------------------------------------------------------------------- /documentation/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/tab_h.png -------------------------------------------------------------------------------- /documentation/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/documentation/html/tab_s.png -------------------------------------------------------------------------------- /documentation/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 7 | } 8 | 9 | .tabs2 { 10 | font-size: 10px; 11 | } 12 | .tabs3 { 13 | font-size: 9px; 14 | } 15 | 16 | .tablist { 17 | margin: 0; 18 | padding: 0; 19 | display: table; 20 | } 21 | 22 | .tablist li { 23 | float: left; 24 | display: table-cell; 25 | background-image: url('tab_b.png'); 26 | line-height: 36px; 27 | list-style: none; 28 | } 29 | 30 | .tablist a { 31 | display: block; 32 | padding: 0 20px; 33 | font-weight: bold; 34 | background-image:url('tab_s.png'); 35 | background-repeat:no-repeat; 36 | background-position:right; 37 | color: #283A5D; 38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 39 | text-decoration: none; 40 | outline: none; 41 | } 42 | 43 | .tabs3 .tablist a { 44 | padding: 0 10px; 45 | } 46 | 47 | .tablist a:hover { 48 | background-image: url('tab_h.png'); 49 | background-repeat:repeat-x; 50 | color: #fff; 51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 52 | text-decoration: none; 53 | } 54 | 55 | .tablist li.current a { 56 | background-image: url('tab_a.png'); 57 | background-repeat:repeat-x; 58 | color: #fff; 59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 60 | } 61 | -------------------------------------------------------------------------------- /example/building.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/example/building.png -------------------------------------------------------------------------------- /src/ami_image/image.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alicevision/LensDistortionFromLines/cdd2328c8d848c8ca7d0681aecf7305094245888/src/ami_image/image.h -------------------------------------------------------------------------------- /src/ami_image/io_png/io_png.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2014, AMI RESEARCH GROUP 3 | License : CC Creative Commons "Attribution-NonCommercial-ShareAlike" 4 | see http://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.en 5 | */ 6 | 7 | #ifndef _IO_PNG_H 8 | #define _IO_PNG_H 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | #define IO_PNG_VERSION "0.20110825" 15 | 16 | #include 17 | 18 | /* io_png.c */ 19 | char *io_png_info(void); 20 | unsigned char *io_png_read_u8(const char *fname, size_t *nxp, size_t *nyp, 21 | size_t *ncp); 22 | unsigned char *io_png_read_u8_rgb(const char *fname, size_t *nxp, size_t *nyp); 23 | unsigned char *io_png_read_u8_gray(const char *fname, size_t *nxp, size_t *nyp); 24 | float *io_png_read_f32(const char *fname, size_t *nxp, size_t *nyp, 25 | size_t *ncp); 26 | float *io_png_read_f32_rgb(const char *fname, size_t *nxp, size_t *nyp); 27 | float *io_png_read_f32_gray(const char *fname, size_t *nxp, size_t *nyp); 28 | int io_png_write_u8(const char *fname, const unsigned char *data, 29 | size_t nx, size_t ny, size_t nc); 30 | int io_png_write_f32(const char *fname, const float *data, 31 | size_t nx, size_t ny, size_t nc); 32 | int ami_write_png(char name[200], unsigned char *red, unsigned char *green, unsigned char *blue, int width, int height); 33 | int ami_read_png(char name[200], unsigned char **red, unsigned char **green, unsigned char **blue, int *width, int *height); 34 | 35 | 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* !_IO_PNG_H */ 42 | -------------------------------------------------------------------------------- /src/ami_image_draw/image_draw.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2014, AMI RESEARCH GROUP 3 | License : CC Creative Commons "Attribution-NonCommercial-ShareAlike" 4 | see http://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.en 5 | */ 6 | 7 | #ifndef AMI_DLL_H 8 | #define AMI_DLL_H 9 | #endif 10 | 11 | /** 12 | * \file image_draw.h 13 | * \brief image_draw class AMI_DLL_H definition 14 | * \author Carlos Falcon \n \n 15 | */ 16 | 17 | 18 | #ifndef image_draw_H 19 | #define image_draw_H 20 | 21 | #ifndef NOMINMAX 22 | #define NOMINMAX 23 | #endif 24 | 25 | 26 | #include 27 | 28 | #include "../ami_image/image.h" 29 | 30 | 31 | #define image_draw_DEBUG 32 | 33 | using namespace std; 34 | 35 | namespace ami 36 | { 37 | 38 | 39 | class AMI_DLL_H image_draw 40 | { 41 | public : 42 | template 43 | void draw_cercle(ami::image &imagen, double x0,double y0,float radius, unsigned char red_arrow=255,unsigned char green_arrow=0,unsigned char blue_arrow=0); 44 | 45 | }; 46 | 47 | /** 48 | * \fn template void image_draw::draw_cercle( ami::image &imagen, double x0,double y0, float radius, 49 | unsigned char red_arrow,unsigned char green_arrow,unsigned char blue_arrow) 50 | * \brief Function to draw a cercle in an unsigned char image channel 51 | * \param imagen INPUT/OUTPUT IMAGE WHERE THE CERCLE WILL BE DRAWN 52 | * \param [in] width, height IMAGE DIMENSIONS 53 | * \param [in] x0,y0 LOCATION OF THE CERCLE CENTRE 54 | * \param [in] radius RADIUS OF THE CERCLE 55 | * \param [in] red_arrow,green_arrow,blue_arrow COLOR TO FILL THE CIRCLE 56 | * \author Carlos Falcon 57 | */ 58 | template 59 | void image_draw::draw_cercle( 60 | ami::image &imagen, 61 | double x0,double y0, 62 | float radius, 63 | unsigned char red_arrow,unsigned char green_arrow,unsigned char blue_arrow) 64 | 65 | { 66 | int width=imagen.width(); 67 | int height=imagen.height(); 68 | int size=width*height; 69 | int i,j,cont,cont2; 70 | float m,n,paso=(float)0.06; 71 | // WE DRAW THE CERCLE 72 | for (int k=0;kwidth || (y0-radius)>height) return; 89 | for(i=(int) (y0-radius-1);i<=(y0+radius);i++){ 90 | for(j=(int) (x0-radius-1);j<=(x0+radius);j++){ 91 | if(i<0 || i>=height || j<0 || j>=width) continue; 92 | cont=0; 93 | if( ((i-y0)*(i-y0)+(j-x0)*(j-x0))<(radius*radius) ) cont++; 94 | if( ((i+1-y0)*(i+1-y0)+(j-x0)*(j-x0))<(radius*radius) ) cont++; 95 | if( ((i-y0)*(i-y0)+(j+1-x0)*(j+1-x0))<(radius*radius) ) cont++; 96 | if( ((i+1-y0)*(i+1-y0)+(j+1-x0)*(j+1-x0))<(radius*radius) ) cont++; 97 | if( cont==4 ) imagen[i*width+j+k*size]=cercle_color; 98 | else if ( cont>0 ){ 99 | cont=0; cont2=0; 100 | for(n=(float)i;n<=(i+1);n+=paso){ 101 | for(m=(float)j;m<=(j+1);m+=paso){ 102 | cont++; 103 | if( ((n-y0)*(n-y0)+(m-x0)*(m-x0)) 3 | License : CC Creative Commons "Attribution-NonCommercial-ShareAlike" 4 | see http://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.en 5 | */ 6 | 7 | 8 | #ifndef AMI_DLL_H 9 | #define AMI_DLL_H 10 | #endif 11 | 12 | /** 13 | * \file lens_distortion_model.h 14 | * \brief Lens distortion model class AMI_DLL_H definition 15 | * \author Luis Alvarez \n \n 16 | */ 17 | #ifndef LENS_DISTORTION_MODEL_H 18 | #define LENS_DISTORTION_MODEL_H 19 | 20 | #define POLYNOMIAL 0 21 | #define DIVISION 1 22 | 23 | #include "../ami_primitives/point2d.h" 24 | 25 | #ifdef __AMIDEBUG__ 26 | #include "wxAmiDebugLog.h" 27 | #endif 28 | 29 | using namespace ami; 30 | using namespace std; 31 | 32 | namespace ami 33 | { 34 | /** 35 | * \class lens_distortion_model 36 | * \brief class to store distortion model and basic methods 37 | * \author Luis Alvarez 38 | */ 39 | 40 | class AMI_DLL_H lens_distortion_model{ 41 | std::vector d /** RADIAL DISTORSION MODEL POLYNOMIAL */; 42 | ami::point2d c /** CENTER OF THE DISTORSION MODEL */; 43 | 44 | int type; /** MODEL TYPE (==0 MEANS POLYNOMIAL AND ==1 MEANS DIVISION) */ 45 | 46 | public: 47 | lens_distortion_model(){c.x=0; c.y=0; type=POLYNOMIAL;}; // CONSTRUCTOR WITHOUT TAKING MEMORY 48 | ~lens_distortion_model(){d.clear();} /** DESTRUCTOR TO FREE MEMORY */; 49 | 50 | /** 51 | * \fn std::vector get_d() 52 | * \brief This function returns the vector with the lens distortion model parameters 53 | * \author Luis Alvarez 54 | */ 55 | std::vector &get_d(){return d;} 56 | 57 | 58 | /** 59 | * \fn const std::vector &get_d() 60 | * \author Luis Alvarez 61 | */ 62 | const std::vector &get_d() const {return d;} 63 | 64 | /** 65 | * \fn void set_d(const std::vector &d2) 66 | * \brief Method for setting the lens distortion model parameters 67 | * \author Luis Alvarez 68 | */ 69 | void set_d(const std::vector &d_2){d=d_2;} 70 | void set_d(std::vector &d_2){d=d_2;} 71 | 72 | /** 73 | * \fn void set_distortion_center(const point2d &c2) 74 | * \brief Method for setting the center of the lens distortion model 75 | * \author Luis Alvarez 76 | */ 77 | void set_distortion_center(const point2d &c2)/** SET DISTORTION MODEL CENTER*/{c=c2;} 78 | 79 | /** 80 | * \fn point2d get_distortion_center() 81 | * \brief This function returns the center of the lens distortion model 82 | * \author Luis Alvarez 83 | */ 84 | 85 | point2d &get_distortion_center(){return c;} 86 | 87 | /** 88 | * \fn const point2d &get_distortion_center() 89 | * \author Luis Alvarez 90 | */ 91 | const point2d &get_distortion_center() const {return c;} 92 | 93 | /** 94 | * \fn point2d evaluation_quotient(point2d &p) 95 | * \brief For a given point, this function computes the division model in that 96 | * point and returns its new position 97 | * \author Luis Alvarez 98 | */ 99 | point2d evaluation_quotient(const point2d &p) const; 100 | 101 | /** 102 | * \fn point2d evaluation(point2d &p) 103 | * \brief For a given point, this function computes the polynomial model in that 104 | * point and returns its new position 105 | * \author Luis Alvarez 106 | */ 107 | point2d evaluation(const point2d &p) const; 108 | point2d evaluation(point2d &p); 109 | 110 | /** 111 | * \fn point2d inverse_evaluation(point2d &p) 112 | * \brief This method computes the inverse polynomial model in a point and returns 113 | * its original position 114 | * \author Luis Alvarez 115 | */ 116 | point2d inverse_evaluation(const point2d &p) const; 117 | point2d inverse_evaluation(point2d &p); 118 | 119 | /** 120 | * \fn point2d inverse_evaluation_quotient(point2d &p) 121 | * \brief This method computes the inverse division model in a point and returns 122 | * its original position 123 | * \author Luis Alvarez 124 | */ 125 | point2d inverse_evaluation_quotient(const point2d &p) const; 126 | point2d inverse_evaluation_quotient(point2d &p); 127 | 128 | 129 | /** 130 | * \fn point2d inverse_evaluation_fast(point2d &p,double dl1r, double *a, int Na) 131 | * \brief Accelerated version of the method that computes the inverse polynomial 132 | * model and returns the original position of the point 133 | * \author Luis Alvarez 134 | */ 135 | point2d inverse_evaluation_fast(point2d &p,double dl1r, double *a, int Na); 136 | 137 | /** 138 | * \fn std::vector > evaluation(const std::vector > & ptl) 139 | * \brief For a given vector of points, this function computes the polynomial 140 | * model of each one and returns their new position inside a vector 141 | * \author Luis Alvarez 142 | */ 143 | std::vector > evaluation(const std::vector > & ptl) const{ 144 | std::vector > res; 145 | for(int i=0;i<((int)ptl.size());i++) 146 | { 147 | res.push_back(evaluation(ptl[i])); 148 | } 149 | return res; 150 | } 151 | 152 | void set_type(const int type2){type=type2;} 153 | int get_type() const {return(type);} 154 | 155 | /** 156 | * \fn int read(char name[300]) 157 | * \brief This function reads the lens distortion model from a file 158 | * \author Luis Alvarez 159 | */ 160 | int read(char name[300]); 161 | 162 | /** 163 | * \fn write(char name[300]) 164 | * \brief This function writes the lens distortion model to a file 165 | * \author Luis Alvarez 166 | */ 167 | int write(char name[300]); 168 | 169 | /** 170 | * \fn void reset() 171 | * \brief Reset to initial state 172 | * \author Pedro Henriquez 173 | */ 174 | 175 | void reset(){d.clear(); c.x=0; c.y=0; /*H.reset();*/} 176 | 177 | }; 178 | } 179 | 180 | #endif 181 | -------------------------------------------------------------------------------- /src/ami_pol/ami_pol.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2014, AMI RESEARCH GROUP 3 | License : CC Creative Commons "Attribution-NonCommercial-ShareAlike" 4 | see http://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.en 5 | */ 6 | 7 | 8 | #ifndef _AMI_POL_H_ 9 | #define _AMI_POL_H_ 10 | 11 | #include 12 | #include 13 | 14 | long double ami_horner(long double *pol,int degree,long double x, 15 | long double *fp); 16 | long double ami_root_bisection(long double *pol,int degree,long double a, 17 | long double b,long double TOL); 18 | int ami_polynomial_root(double *pol, int degree, double *root_r, 19 | double *root_i); 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /src/ami_primitives/line.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2014, AMI RESEARCH GROUP 3 | License : CC Creative Commons "Attribution-NonCommercial-ShareAlike" 4 | see http://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.en 5 | */ 6 | 7 | 8 | #ifndef AMI_DLL_H 9 | #define AMI_DLL_H 10 | #endif 11 | 12 | /** 13 | * \file line.h 14 | * \brief class for straight line 15 | * \author Luis Alvarez \n \n 16 | */ 17 | #ifndef LINE_H 18 | #define LINE_H 19 | #include 20 | #include 21 | #include "point2d.h" 22 | 23 | namespace ami 24 | { 25 | /** 26 | * \class line 27 | * \brief class for straight lines 28 | */ 29 | // class AMI_DLL_H FOR STRAIGHT LINES 30 | class AMI_DLL_H line{ 31 | double a,b,c/** LINE EQUATIONS (ax+by+c=0)*/; 32 | public: 33 | line():a(0.0),b(0.0),c(0.0){}; /** CONSTRUCTOR TO INITIALIZE THE LINE*/ 34 | line(double xx, double yy,double zz):a(xx), b(yy), c(zz){} 35 | line(const ami::point2d &u,const ami::point2d &v){ 36 | a=v.y-u.y; b=u.x-v.x; c=v.x*u.y-u.x*v.y;} 37 | 38 | /** 39 | * \fn const double &get_a() 40 | * \brief Get coefficient "a" 41 | * \author Luis Alvarez 42 | */ 43 | const double &get_a() const {return a;} 44 | double &get_a() {return a;} 45 | /** 46 | * \fn const double &get_b() 47 | * \brief Get coefficient "b" 48 | * \author Luis Alvarez 49 | */ 50 | const double &get_b() const {return b;} 51 | double &get_b() {return b;} 52 | /** 53 | * \fn const double &get_c() 54 | * \brief Get coefficient "c" 55 | * \author Luis Alvarez 56 | */ 57 | const double &get_c() const {return c;} 58 | double &get_c() {return c;} 59 | 60 | /** 61 | * \fn get_abc(double &a2,double &b2,double &c2) 62 | * \brief Get the three coefficients "a,b,c" 63 | * \author Luis Alvarez 64 | */ 65 | void get_abc(double &a2,double &b2,double &c2) {a2=a; b2=b; c2=c;} 66 | void get_abc(double &a2,double &b2,double &c2) const {a2=a; b2=b; c2=c;} 67 | 68 | 69 | /** 70 | * \fn void set_a(double a2) 71 | * \brief Set coefficient "a" 72 | * \author Luis Alvarez 73 | */ 74 | void set_a(double a2){a=a2;} 75 | /** 76 | * \fn void set_b(double b2) 77 | * \brief Set coefficient "b" 78 | * \author Luis Alvarez 79 | */ 80 | void set_b(double b2){b=b2;} 81 | /** 82 | * \fn void set_c(double c2) 83 | * \brief Set coefficient "c" 84 | * \author Luis Alvarez 85 | */ 86 | void set_c(double c2){c=c2;} 87 | /** 88 | * \fn void set_abc(double a2,double b2,double c2) 89 | * \brief Set the three coefficients "a,b,c" 90 | * \author Luis Alvarez 91 | */ 92 | void set_abc(double a2,double b2,double c2){a=a2; b=b2; c=c2;} 93 | 94 | 95 | /** 96 | * \fn double distance(const point2d &p) const 97 | * \brief Calculates the distance between a point and the line. 98 | * \author Luis Alvarez 99 | */ 100 | //template 101 | double distance(const point2d &p) const { 102 | double d = sqrt(a*a+b*b); 103 | return (a*p.x+b*p.y+c)/d; 104 | }; 105 | 106 | /** 107 | * \fn double evaluation(const point2d &p) const 108 | * \brief Evaluates a point with the line equation. 109 | * \author Luis Alvarez 110 | */ 111 | //template 112 | double evaluation(const point2d &p) const { 113 | return (a*p.x+b*p.y+c); 114 | }; 115 | 116 | friend point2d line_intersection(const line &l1,const line &l2); 117 | 118 | }; 119 | 120 | 121 | point2d line_intersection(const line &l1,const line &l2); 122 | 123 | } 124 | 125 | std::ostream &operator <<(std::ostream &s, const ami::line &p); 126 | std::istream &operator >>(std::istream &s, ami::line &p) ; 127 | 128 | #endif 129 | -------------------------------------------------------------------------------- /src/ami_primitives/line_extraction.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2014, AMI RESEARCH GROUP 3 | License : CC Creative Commons "Attribution-NonCommercial-ShareAlike" 4 | see http://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.en 5 | */ 6 | 7 | #ifndef AMI_DLL_H 8 | #define AMI_DLL_H 9 | #endif 10 | 11 | #ifndef LINE_EXTRACTION_H 12 | #define LINE_EXTRACTION_H 13 | #include "subpixel_image_contours.h" 14 | #include "image_primitives.h" 15 | #include 16 | #include 17 | 18 | double line_equation_distortion_extraction_improved_hough( 19 | const subpixel_image_contours &subpixel_contours, 20 | image_primitives &image_primitive, 21 | const float distance_point_line_max, 22 | const int nlineas = 100, 23 | const float angle_resolution = 0.1, 24 | const float distance_resolution = 1., 25 | const float initial_distortion_parameter=0.0, 26 | const float final_distortion_parameter=1.0, 27 | const float distortion_parameter_resolution=0.1, 28 | const float angle_point_orientation_max_difference=2.0, 29 | const bool lens_distortion_estimation=true, 30 | const lens_distortion_model& ini_ldm = lens_distortion_model()); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /src/ami_primitives/line_points.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2014, AMI RESEARCH GROUP 3 | License : CC Creative Commons "Attribution-NonCommercial-ShareAlike" 4 | see http://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.en 5 | */ 6 | 7 | 8 | #ifndef AMI_DLL_CPP 9 | #define AMI_DLL_CPP 10 | #endif 11 | 12 | /** 13 | * \file line_points.cpp 14 | * \brief line_points class AMI_DLL_H basic methods 15 | * \author Luis Alvarez \n \n 16 | */ 17 | 18 | #include 19 | #include 20 | #include 21 | #include "line_points.h" 22 | using namespace ami; 23 | using namespace std; 24 | 25 | 26 | 27 | /** 28 | * \fn double line_points::points_to_equation() 29 | * \brief LINE ESTIMATION FROM POINT RETURN -1 IF IT DOES NOT WORK. OTHERWISE 30 | RETURN THE AVERAGE OF THE SQUARED DISTANCE OF THE POINTS TO THE LINE 31 | * \author Luis Alvarez 32 | */ 33 | 34 | /****************************************************************/ 35 | /* LINE ESTIMATION FROM POINT RETURN -1 IF IT DOES NOT WORK. OTHERWISE 36 | RETURN THE AVERAGE OF THE SQUARED DISTANCE OF THE POINTS TO THE LINE */ 37 | /****************************************************************/ 38 | AMI_DLL_CPP double line_points::points_to_equation() 39 | { 40 | int i, j, k; 41 | long double suu, suv, svv/*,h0,h1*/, um, vm, h, r[4][3], min, paso, norma; 42 | long double cero=10e-100; 43 | int N=points.size(); 44 | 45 | if(N < 2) 46 | { 47 | printf("Numero de puntos para el Calculo de la recta 2D menor que 2\n"); 48 | return(-1.); 49 | } 50 | 51 | 52 | suu=0; 53 | suv=0; 54 | svv=0; 55 | um=0; 56 | vm=0; 57 | 58 | for(i=0; icero) 79 | { 80 | //a=1; b=0; c=-um; 81 | rect.set_a((double) 1.); 82 | rect.set_b((double) 0.); 83 | rect.set_c((double) -um); 84 | return(0); 85 | } 86 | if(svvcero) 87 | { 88 | //a=0; b=1; c=-vm; 89 | rect.set_a((double) 0.); 90 | rect.set_b((double) 1.); 91 | rect.set_c((double) -vm); 92 | return(0); 93 | } 94 | printf("No se pudo calcular la recta 2D\n"); 95 | return(-1); 96 | } 97 | 98 | r[2][1]=r[3][1]=r[0][0]=r[1][0]=1.; 99 | h=0.5*(suu-svv)/suv; 100 | if(h > 0) 101 | { 102 | r[0][1]=-h-sqrt(1.+h*h); 103 | r[0][2]=-(um+r[0][1]*vm); 104 | r[1][1]=-1./r[0][1]; 105 | r[1][2]=-(um+r[1][1]*vm); 106 | r[2][0]=h+sqrt(1.+h*h); 107 | r[2][2]=-(r[2][0]*um+vm); 108 | r[3][0]=-1./r[2][0]; 109 | r[3][2]=-(r[3][0]*um+vm); 110 | } 111 | else 112 | { 113 | r[0][1]=-h+sqrt(1+h*h); 114 | r[0][2]=-(um+r[0][1]*vm); 115 | r[1][1]=-1./r[0][1]; 116 | r[1][2]=-(um+r[1][1]*vm); 117 | r[2][0]=h-sqrt(1+h*h); 118 | r[2][2]=-(r[2][0]*um+vm); 119 | r[3][0]=-1./r[2][0]; 120 | r[3][2]=-(r[3][0]*um+vm); 121 | } 122 | 123 | for(j=0; j<4; j++) 124 | { 125 | norma=sqrt(r[j][0]*r[j][0]+r[j][1]*r[j][1]); 126 | for(i=0; i<3; i++) 127 | r[j][i]/=norma; 128 | } 129 | 130 | min=0.; k=0; 131 | for(i=0; i &min_x_p, 159 | point2d &max_x_p, 160 | point2d &min_y_p, 161 | point2d &max_y_p ) 162 | * \brief Return the points with the max x, min x, max y and min y coordinates 163 | * \author Pedro Henriquez 164 | */ 165 | AMI_DLL_CPP void line_points::get_max_min_points(point2d &min_x_p, 166 | point2d &max_x_p, 167 | point2d &min_y_p, 168 | point2d &max_y_p ) 169 | { 170 | double max_x=points[0].x; 171 | double min_x=points[0].x; 172 | double max_y=points[0].y; 173 | double min_y=points[0].y; 174 | min_x_p=max_x_p=min_y_p=max_y_p=points[0]; 175 | for(int i=0; i<(int)points.size(); i++) 176 | { 177 | if(points[i].x > max_x) 178 | { 179 | max_x_p=points[i]; 180 | max_x=points[i].x; 181 | } 182 | if(points[i].x < min_x) 183 | { 184 | min_x_p=points[i]; 185 | min_x=points[i].x; 186 | } 187 | if(points[i].y < min_y) 188 | { 189 | min_y_p=points[i]; 190 | min_y=points[i].y; 191 | } 192 | if(points[i].y > max_y) 193 | { 194 | max_y_p=points[i]; 195 | max_y=points[i].y; 196 | } 197 | } 198 | } 199 | 200 | /** 201 | * \fn double line_points::distance(point2d &p ) 202 | * \brief Return the min distance of a point to the collection of points of the line points 203 | * \author Luis Alvarez 204 | */ 205 | AMI_DLL_CPP double line_points::distance(const point2d &p /** point2d */) 206 | { 207 | double min=1e20; 208 | for(int m=0; m<(int)points.size(); m++) 209 | { 210 | double temp=(points[m].x-p.x)*(points[m].x-p.x)+(points[m].y-p.y)*(points[m].y-p.y); 211 | if(temp0) 215 | return(sqrt(min)); 216 | else 217 | return(0.); 218 | } 219 | -------------------------------------------------------------------------------- /src/ami_primitives/line_points.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2014, AMI RESEARCH GROUP 3 | License : CC Creative Commons "Attribution-NonCommercial-ShareAlike" 4 | see http://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.en 5 | */ 6 | 7 | #ifndef AMI_DLL_H 8 | #define AMI_DLL_H 9 | #endif 10 | 11 | /** 12 | * \file line_points.h 13 | * \brief line_points class AMI_DLL_H to store line equation and associated 14 | points 15 | * \author Luis Alvarez \n \n 16 | */ 17 | 18 | #ifndef LINE_POINTS_H 19 | #define LINE_POINTS_H 20 | #include "line.h" 21 | #include "point2d.h" 22 | #include 23 | #include 24 | 25 | 26 | using namespace std; 27 | using namespace ami; 28 | 29 | 30 | 31 | namespace ami 32 | { 33 | 34 | /** 35 | * \class line_points 36 | * \author Luis Alvarez 37 | * \brief class to store together a collection of aligned points and line 38 | equation and basic method 39 | */ 40 | class AMI_DLL_H line_points{ 41 | ami::line rect/** Line defined by the equation (ax+by+c=0)*/; 42 | std::vector< ami::point2d > points/** line points */; 43 | 44 | 45 | public: 46 | /** 47 | * \fn line_points() 48 | * \author Luis Alvarez 49 | */ 50 | line_points(){ rect.set_abc((double) 0.,(double) 0,(double) 0);} 51 | 52 | /** 53 | * \fn line_points() 54 | * \author Luis Alvarez 55 | */ 56 | line_points(const line_points &line){ rect = line.rect; points = line.points;} 57 | 58 | /** 59 | * \fn line_points(double a,double b,double c) 60 | * \author Luis Alvarez 61 | * \param a,b,c 62 | */ 63 | line_points(double a/** Not described */,double b/** Not described */, 64 | double c/** Not described */){ rect.set_abc(a,b,c);} 65 | 66 | /** 67 | * \fn ~line_points() 68 | * \author Luis Alvarez 69 | */ 70 | ~line_points(){}; 71 | 72 | /** 73 | * \fn std::vector get_points() 74 | * \author Luis Alvarez 75 | */ 76 | 77 | std::vector > &get_points() {return points;} 78 | /** 79 | * \fn const std::vector &get_points() 80 | * \author Luis Alvarez 81 | */ 82 | 83 | const std::vector > &get_points() const { 84 | return points;} /** RETURN p*/ 85 | 86 | /** 87 | * \fn const ami::line &get_rect() const 88 | * \author Luis Alvarez 89 | */ 90 | const ami::line &get_rect() const {return rect;} 91 | ami::line &get_rect() {return rect;} 92 | /** 93 | * \fn const double &get_a() 94 | * \author Luis Alvarez 95 | */ 96 | const double &get_a() const {return rect.get_a();} 97 | double &get_a() {return rect.get_a();} 98 | /** 99 | * \fn const double &get_b() 100 | * \author Luis Alvarez 101 | */ 102 | const double &get_b() const {return rect.get_b();} 103 | double &get_b() {return rect.get_b();} 104 | /** 105 | * \fn const double &get_c() 106 | * \author Luis Alvarez 107 | */ 108 | const double &get_c() const {return rect.get_c();} 109 | double &get_c(){return rect.get_c();} 110 | 111 | /** 112 | * \fn get_abc(double &a2,double &b2,double &c2) 113 | * \author Luis Alvarez 114 | */ 115 | void get_abc(double &a2/** Not described */,double &b2/** Not described */, 116 | double &c2/** Not described */) 117 | {a2=rect.get_a(); b2=rect.get_b(); c2=rect.get_c();} 118 | 119 | /** 120 | * \fn void set_a(double a2) 121 | * \author Luis Alvarez 122 | */ 123 | void set_a(double a2/** Not described */){rect.set_a(a2);} 124 | /** 125 | * \fn void set_b(double b2) 126 | * \author Luis Alvarez 127 | */ 128 | void set_b(double b2/** Not described */){rect.set_b(b2);} 129 | /** 130 | * \fn void set_c(double c2) 131 | * \author Luis Alvarez 132 | */ 133 | void set_c(double c2/** Not described */){rect.set_c(c2);} 134 | 135 | /** 136 | * \fn void set_abc(double a,double b,double c){rect.set_abc(a,b,c);} 137 | * \author Luis Alvarez 138 | */ 139 | void set_abc(double a/** Not described */,double b/** Not described */, 140 | double c/** Not described */) 141 | { 142 | rect.set_abc(a,b,c); 143 | } 144 | 145 | /** 146 | * \fn void set_points(std::vector > p2) 147 | * \author Luis Alvarez 148 | */ 149 | void set_points(const std::vector >& p2/** Not described */) 150 | { 151 | points=p2; 152 | } 153 | 154 | double points_to_equation()/** COMPUTES RECT FROM x,y*/; 155 | /** 156 | * \fn double evaluation(const point2d &p) const 157 | * \author Luis Alvarez 158 | */ 159 | 160 | double evaluation(const point2d &p /** point2d */) const 161 | { 162 | return (rect.get_a()*p.x+rect.get_b()*p.y+rect.get_c()); 163 | } 164 | 165 | line_points & operator= (const line_points &line) 166 | { 167 | rect = line.rect; 168 | points = line.points; 169 | return *this; 170 | } 171 | 172 | void get_max_min_points(point2d &min_x_p, point2d &max_x_p, 173 | point2d &min_y_p, point2d &max_y_p ); 174 | 175 | double distance(const point2d &p /** point2d */); 176 | 177 | }; 178 | 179 | } 180 | 181 | #endif 182 | -------------------------------------------------------------------------------- /src/ami_primitives/point2d.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2014, AMI RESEARCH GROUP 3 | License : CC Creative Commons "Attribution-NonCommercial-ShareAlike" 4 | see http://creativecommons.org/licenses/by-nc-sa/3.0/es/deed.en 5 | */ 6 | 7 | 8 | #ifndef AMI_DLL_H 9 | #define AMI_DLL_H 10 | #endif 11 | 12 | /** 13 | * \file point2d.h 14 | * \brief point2d class definition 15 | * \author Luis Alvarez \n \n 16 | */ 17 | #ifndef POINT2D_H 18 | #define POINT2D_H 19 | #include 20 | #include 21 | #include 22 | 23 | using namespace std; 24 | 25 | namespace ami 26 | { 27 | 28 | /** 29 | * \class point2d 30 | * \brief class to store 2D points and basic methods 31 | * \author Luis Alvarez 32 | */ 33 | template < class T > 34 | class AMI_DLL_H point2d { 35 | 36 | public : 37 | T x /** point x coordinate */; 38 | T y /** point y coordinate */; 39 | point2d():x( (T) 0), y( (T) 0){}; 40 | ~point2d(){}; 41 | point2d(const T xx , const T yy){x=xx; y=yy;} 42 | point2d(const T scalar){x=y=scalar;} 43 | point2d & operator=(const point2d &p){ x=p.x; y=p.y; return *this;} 44 | point2d & operator=(const T scalar){ x=scalar; y=scalar; return *this;} 45 | point2d (const point2d &p){x=p.x; y=p.y;} 46 | point2d operator+(const point2d &p)const {return point2d(x+p.x,y+p.y);} 47 | point2d operator-(const point2d &p)const {return point2d(x-p.x,y-p.y);} 48 | point2d operator*(const T &a)const {return point2d(a*x,a*y);} 49 | double operator*(const point2d &p)const {return ( (double) x*p.x+y*p.y);} 50 | inline T norm(){T paso=x*x+y*y; return(paso>0.?sqrtf((float) paso):0.);} 51 | inline T norm2(){ return(x*x+y*y);} 52 | void print(){ std::cout << "point2d : (" << x << "," << y << ")" << 53 | std::endl;} 54 | int find_nearest_point(std::vector< point2d > primitive); 55 | void find_nearest_point(std::vector< point2d > primitive,int &id, 56 | T &distance); 57 | bool operator!=(const T scalar) const {return(x!=scalar && y!=scalar);} 58 | }; 59 | 60 | //////////////////////////////////////////////////////////////////////////////// 61 | /** 62 | * \fn template int point2d:: 63 | find_nearest_point(std::vector< point2d > primitive) 64 | * \brief Find the point in th primitive that is the neareast to point, and 65 | returns its index 66 | * \param [in] primitive Vector with points 2d, it can represente a line, 67 | a polygon,a contour,etc.. 68 | * \author Pedro Henriquez 69 | */ 70 | template 71 | int point2d::find_nearest_point(std::vector< point2d > primitive) 72 | { 73 | //FIND THE NEAREST POINT TO THE ACTUAL POINT 74 | T min_dist,dist; 75 | int min=-1; 76 | min_dist=99999; 77 | point2d point_p; 78 | for(unsigned int i=0;i void point2d:: 95 | find_nearest_point(std::vector< point2d > primitive,int &id, T &distance) 96 | * \brief Find the point in th primitive that is the neareast to point, and 97 | returns its index 98 | * \param [in] primitive Vector with points 2d, it can represente a line, 99 | a polygon,a contour,etc.. 100 | * \author Pedro Henriquez 101 | */ 102 | template 103 | void point2d::find_nearest_point(std::vector< point2d >primitive/**.*/, 104 | int &id/**.*/, T &distance/**.*/) 105 | { 106 | //FIND THE NEAREST POINT TO THE ACTUAL POINT 107 | T dist; 108 | id=-1; 109 | distance=99999; 110 | point2d point_p; 111 | for(unsigned int i=0;i