Commit 96183dd0 authored by biagio montesano's avatar biagio montesano

Lines extraction and descriptors testing completed

parent fc72a71b
...@@ -12,7 +12,7 @@ IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) ...@@ -12,7 +12,7 @@ IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" "" STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
ELSE(BUILD_TYPE) ELSE(BUILD_TYPE)
SET(CMAKE_INSTALL_CONFIG_NAME "Release") SET(CMAKE_INSTALL_CONFIG_NAME "RelWithDebInfo")
ENDIF(BUILD_TYPE) ENDIF(BUILD_TYPE)
MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
......
This diff is collapsed.
# The set of languages for which implicit dependencies are needed:
SET(CMAKE_DEPENDS_LANGUAGES
"CXX"
)
# The set of files for implicit dependencies of each language:
SET(CMAKE_DEPENDS_CHECK_CXX
"/home/ubisum/src/opencv/modules/line_descriptor/samples/compute_descriptors.cpp" "/home/ubisum/src/opencv/modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o"
)
SET(CMAKE_CXX_COMPILER_ID "GNU")
# Preprocessor definitions for this target.
SET(CMAKE_TARGET_DEFINITIONS
"__OPENCV_BUILD=1"
)
# Targets to which this target links.
SET(CMAKE_TARGET_LINKED_INFO_FILES
"/home/ubisum/src/opencv/modules/line_descriptor/CMakeFiles/opencv_line_descriptor.dir/DependInfo.cmake"
"/home/ubisum/src/opencv/modules/core/CMakeFiles/opencv_core.dir/DependInfo.cmake"
"/home/ubisum/src/opencv/modules/flann/CMakeFiles/opencv_flann.dir/DependInfo.cmake"
"/home/ubisum/src/opencv/modules/imgproc/CMakeFiles/opencv_imgproc.dir/DependInfo.cmake"
"/home/ubisum/src/opencv/modules/highgui/CMakeFiles/opencv_highgui.dir/DependInfo.cmake"
"/home/ubisum/src/opencv/modules/features2d/CMakeFiles/opencv_features2d.dir/DependInfo.cmake"
"/home/ubisum/src/opencv/modules/optim/CMakeFiles/opencv_optim.dir/DependInfo.cmake"
)
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# The program to use to edit the cache.
CMAKE_EDIT_COMMAND = /usr/bin/ccmake
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/ubisum/src/opencv
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/ubisum/src/opencv
# Include any dependencies generated for this target.
include modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/depend.make
# Include the progress variables for this target.
include modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/progress.make
# Include the compile flags for this target's objects.
include modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/flags.make
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o: modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/flags.make
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o: modules/line_descriptor/samples/compute_descriptors.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/ubisum/src/opencv/CMakeFiles $(CMAKE_PROGRESS_1)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o"
cd /home/ubisum/src/opencv/modules/line_descriptor && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o -c /home/ubisum/src/opencv/modules/line_descriptor/samples/compute_descriptors.cpp
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.i"
cd /home/ubisum/src/opencv/modules/line_descriptor && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/ubisum/src/opencv/modules/line_descriptor/samples/compute_descriptors.cpp > CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.i
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.s"
cd /home/ubisum/src/opencv/modules/line_descriptor && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/ubisum/src/opencv/modules/line_descriptor/samples/compute_descriptors.cpp -o CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.s
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o.requires:
.PHONY : modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o.requires
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o.provides: modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o.requires
$(MAKE) -f modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/build.make modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o.provides.build
.PHONY : modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o.provides
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o.provides.build: modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o
# Object files for target example_line_descriptor_compute_descriptors
example_line_descriptor_compute_descriptors_OBJECTS = \
"CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o"
# External object files for target example_line_descriptor_compute_descriptors
example_line_descriptor_compute_descriptors_EXTERNAL_OBJECTS =
bin/example_line_descriptor_compute_descriptors: modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o
bin/example_line_descriptor_compute_descriptors: lib/libopencv_line_descriptor.so.3.0.0
bin/example_line_descriptor_compute_descriptors: lib/libopencv_core.so.3.0.0
bin/example_line_descriptor_compute_descriptors: lib/libopencv_flann.so.3.0.0
bin/example_line_descriptor_compute_descriptors: lib/libopencv_imgproc.so.3.0.0
bin/example_line_descriptor_compute_descriptors: lib/libopencv_highgui.so.3.0.0
bin/example_line_descriptor_compute_descriptors: lib/libopencv_features2d.so.3.0.0
bin/example_line_descriptor_compute_descriptors: lib/libopencv_optim.so.3.0.0
bin/example_line_descriptor_compute_descriptors: lib/libopencv_highgui.so.3.0.0
bin/example_line_descriptor_compute_descriptors: lib/libopencv_flann.so.3.0.0
bin/example_line_descriptor_compute_descriptors: lib/libopencv_imgproc.so.3.0.0
bin/example_line_descriptor_compute_descriptors: lib/libopencv_core.so.3.0.0
bin/example_line_descriptor_compute_descriptors: modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/build.make
bin/example_line_descriptor_compute_descriptors: modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking CXX executable ../../bin/example_line_descriptor_compute_descriptors"
cd /home/ubisum/src/opencv/modules/line_descriptor && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/example_line_descriptor_compute_descriptors.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/build: bin/example_line_descriptor_compute_descriptors
.PHONY : modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/build
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/requires: modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o.requires
.PHONY : modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/requires
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/clean:
cd /home/ubisum/src/opencv/modules/line_descriptor && $(CMAKE_COMMAND) -P CMakeFiles/example_line_descriptor_compute_descriptors.dir/cmake_clean.cmake
.PHONY : modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/clean
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/depend:
cd /home/ubisum/src/opencv && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/ubisum/src/opencv /home/ubisum/src/opencv/modules/line_descriptor /home/ubisum/src/opencv /home/ubisum/src/opencv/modules/line_descriptor /home/ubisum/src/opencv/modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/depend
FILE(REMOVE_RECURSE
"CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o"
"../../bin/example_line_descriptor_compute_descriptors.pdb"
"../../bin/example_line_descriptor_compute_descriptors"
)
# Per-language clean rules from dependency scanning.
FOREACH(lang CXX)
INCLUDE(CMakeFiles/example_line_descriptor_compute_descriptors.dir/cmake_clean_${lang}.cmake OPTIONAL)
ENDFOREACH(lang)
# Empty dependencies file for example_line_descriptor_compute_descriptors.
# This may be replaced when dependencies are built.
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
# compile CXX with /usr/bin/c++
CXX_FLAGS = -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mssse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O2 -g -I/home/ubisum/src/opencv/modules/optim/include -I/home/ubisum/src/opencv/modules/features2d/include -I/home/ubisum/src/opencv/modules/highgui/include -I/home/ubisum/src/opencv/modules/imgproc/include -I/home/ubisum/src/opencv/modules/flann/include -I/home/ubisum/src/opencv/modules/core/include -I/home/ubisum/src/opencv/modules/line_descriptor -I/home/ubisum/src/opencv/modules/line_descriptor/src -I/home/ubisum/src/opencv/modules/line_descriptor/include -I/home/ubisum/src/opencv -isystem /usr/local/include/eigen3
CXX_DEFINES = -D__OPENCV_BUILD=1
/usr/bin/c++ -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mssse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O2 -g CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o -o ../../bin/example_line_descriptor_compute_descriptors -rdynamic ../../lib/libopencv_line_descriptor.so.3.0.0 ../../lib/libopencv_core.so.3.0.0 ../../lib/libopencv_flann.so.3.0.0 ../../lib/libopencv_imgproc.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_features2d.so.3.0.0 ../../lib/libopencv_optim.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_flann.so.3.0.0 ../../lib/libopencv_imgproc.so.3.0.0 ../../lib/libopencv_core.so.3.0.0 -Wl,-rpath,/home/ubisum/src/opencv/lib
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# Generated by "Unix Makefiles" Generator, CMake Version 2.8 # Generated by "Unix Makefiles" Generator, CMake Version 2.8
# compile CXX with /usr/bin/c++ # compile CXX with /usr/bin/c++
CXX_FLAGS = -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG -I/home/ubisum/src/opencv/modules/optim/include -I/home/ubisum/src/opencv/modules/features2d/include -I/home/ubisum/src/opencv/modules/highgui/include -I/home/ubisum/src/opencv/modules/imgproc/include -I/home/ubisum/src/opencv/modules/flann/include -I/home/ubisum/src/opencv/modules/core/include -I/home/ubisum/src/opencv/modules/line_descriptor -I/home/ubisum/src/opencv/modules/line_descriptor/src -I/home/ubisum/src/opencv/modules/line_descriptor/include -I/home/ubisum/src/opencv -isystem /usr/local/include/eigen3 CXX_FLAGS = -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mssse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O2 -g -I/home/ubisum/src/opencv/modules/optim/include -I/home/ubisum/src/opencv/modules/features2d/include -I/home/ubisum/src/opencv/modules/highgui/include -I/home/ubisum/src/opencv/modules/imgproc/include -I/home/ubisum/src/opencv/modules/flann/include -I/home/ubisum/src/opencv/modules/core/include -I/home/ubisum/src/opencv/modules/line_descriptor -I/home/ubisum/src/opencv/modules/line_descriptor/src -I/home/ubisum/src/opencv/modules/line_descriptor/include -I/home/ubisum/src/opencv -isystem /usr/local/include/eigen3
CXX_DEFINES = -D__OPENCV_BUILD=1 CXX_DEFINES = -D__OPENCV_BUILD=1
/usr/bin/c++ -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG CMakeFiles/example_line_descriptor_lines_extraction.dir/samples/lines_extraction.cpp.o -o ../../bin/example_line_descriptor_lines_extraction -rdynamic ../../lib/libopencv_line_descriptor.so.3.0.0 ../../lib/libopencv_core.so.3.0.0 ../../lib/libopencv_flann.so.3.0.0 ../../lib/libopencv_imgproc.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_features2d.so.3.0.0 ../../lib/libopencv_optim.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_flann.so.3.0.0 ../../lib/libopencv_imgproc.so.3.0.0 ../../lib/libopencv_core.so.3.0.0 -Wl,-rpath,/home/ubisum/src/opencv/lib /usr/bin/c++ -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mssse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O2 -g CMakeFiles/example_line_descriptor_lines_extraction.dir/samples/lines_extraction.cpp.o -o ../../bin/example_line_descriptor_lines_extraction -rdynamic ../../lib/libopencv_line_descriptor.so.3.0.0 ../../lib/libopencv_core.so.3.0.0 ../../lib/libopencv_flann.so.3.0.0 ../../lib/libopencv_imgproc.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_features2d.so.3.0.0 ../../lib/libopencv_optim.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_flann.so.3.0.0 ../../lib/libopencv_imgproc.so.3.0.0 ../../lib/libopencv_core.so.3.0.0 -Wl,-rpath,/home/ubisum/src/opencv/lib
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# Generated by "Unix Makefiles" Generator, CMake Version 2.8 # Generated by "Unix Makefiles" Generator, CMake Version 2.8
# compile CXX with /usr/bin/c++ # compile CXX with /usr/bin/c++
CXX_FLAGS = -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG -fPIC -I/home/ubisum/src/opencv/modules/optim/include -I/home/ubisum/src/opencv/modules/features2d/include -I/home/ubisum/src/opencv/modules/highgui/include -I/home/ubisum/src/opencv/modules/imgproc/include -I/home/ubisum/src/opencv/modules/flann/include -I/home/ubisum/src/opencv/modules/core/include -I/home/ubisum/src/opencv/modules/line_descriptor -I/home/ubisum/src/opencv/modules/line_descriptor/src -I/home/ubisum/src/opencv/modules/line_descriptor/include -I/home/ubisum/src/opencv -isystem /usr/local/include/eigen3 CXX_FLAGS = -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mssse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O2 -g -fPIC -I/home/ubisum/src/opencv/modules/optim/include -I/home/ubisum/src/opencv/modules/features2d/include -I/home/ubisum/src/opencv/modules/highgui/include -I/home/ubisum/src/opencv/modules/imgproc/include -I/home/ubisum/src/opencv/modules/flann/include -I/home/ubisum/src/opencv/modules/core/include -I/home/ubisum/src/opencv/modules/line_descriptor -I/home/ubisum/src/opencv/modules/line_descriptor/src -I/home/ubisum/src/opencv/modules/line_descriptor/include -I/home/ubisum/src/opencv -isystem /usr/local/include/eigen3
CXX_DEFINES = -DCVAPI_EXPORTS -D__OPENCV_BUILD=1 -DOPENCV_NOSTL CXX_DEFINES = -DCVAPI_EXPORTS -D__OPENCV_BUILD=1 -DOPENCV_NOSTL
......
/usr/bin/c++ -fPIC -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG -shared -Wl,-soname,libopencv_line_descriptor.so.3.0 -o ../../lib/libopencv_line_descriptor.so.3.0.0 CMakeFiles/opencv_line_descriptor.dir/src/line_descriptor_init.cpp.o CMakeFiles/opencv_line_descriptor.dir/src/BinaryDescriptor.cpp.o CMakeFiles/opencv_line_descriptor.dir/src/precomp.cpp.o ../../lib/libopencv_core.so.3.0.0 ../../lib/libopencv_flann.so.3.0.0 ../../lib/libopencv_imgproc.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_features2d.so.3.0.0 ../../lib/libopencv_optim.so.3.0.0 -ldl -lm -lpthread -lrt ../../lib/libopencv_flann.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_imgproc.so.3.0.0 ../../lib/libopencv_core.so.3.0.0 -Wl,-rpath,/home/ubisum/src/opencv/lib: /usr/bin/c++ -fPIC -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mssse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O2 -g -shared -Wl,-soname,libopencv_line_descriptor.so.3.0 -o ../../lib/libopencv_line_descriptor.so.3.0.0 CMakeFiles/opencv_line_descriptor.dir/src/line_descriptor_init.cpp.o CMakeFiles/opencv_line_descriptor.dir/src/BinaryDescriptor.cpp.o CMakeFiles/opencv_line_descriptor.dir/src/precomp.cpp.o ../../lib/libopencv_core.so.3.0.0 ../../lib/libopencv_flann.so.3.0.0 ../../lib/libopencv_imgproc.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_features2d.so.3.0.0 ../../lib/libopencv_optim.so.3.0.0 -ldl -lm -lpthread -lrt -ltbb ../../lib/libopencv_flann.so.3.0.0 ../../lib/libopencv_highgui.so.3.0.0 ../../lib/libopencv_imgproc.so.3.0.0 ../../lib/libopencv_core.so.3.0.0 -Wl,-rpath,/home/ubisum/src/opencv/lib:
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# Generated by "Unix Makefiles" Generator, CMake Version 2.8 # Generated by "Unix Makefiles" Generator, CMake Version 2.8
# compile CXX with /usr/bin/c++ # compile CXX with /usr/bin/c++
CXX_FLAGS = -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG -I/home/ubisum/src/opencv/modules/optim/include -I/home/ubisum/src/opencv/modules/features2d/include -I/home/ubisum/src/opencv/modules/highgui/include -I/home/ubisum/src/opencv/modules/imgproc/include -I/home/ubisum/src/opencv/modules/flann/include -I/home/ubisum/src/opencv/modules/core/include -I/home/ubisum/src/opencv/modules/line_descriptor -I/home/ubisum/src/opencv/modules/line_descriptor/src -I/home/ubisum/src/opencv/modules/line_descriptor/include -I/home/ubisum/src/opencv -isystem /usr/local/include/eigen3 CXX_FLAGS = -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mssse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O2 -g -I/home/ubisum/src/opencv/modules/optim/include -I/home/ubisum/src/opencv/modules/features2d/include -I/home/ubisum/src/opencv/modules/highgui/include -I/home/ubisum/src/opencv/modules/imgproc/include -I/home/ubisum/src/opencv/modules/flann/include -I/home/ubisum/src/opencv/modules/core/include -I/home/ubisum/src/opencv/modules/line_descriptor -I/home/ubisum/src/opencv/modules/line_descriptor/src -I/home/ubisum/src/opencv/modules/line_descriptor/include -I/home/ubisum/src/opencv -isystem /usr/local/include/eigen3
CXX_DEFINES = -D__OPENCV_BUILD=1 CXX_DEFINES = -D__OPENCV_BUILD=1
CMAKE_PROGRESS_1 = CMAKE_PROGRESS_1 = 90
CMAKE_PROGRESS_2 = CMAKE_PROGRESS_2 =
...@@ -45,15 +45,15 @@ CMAKE_BINARY_DIR = /home/ubisum/src/opencv ...@@ -45,15 +45,15 @@ CMAKE_BINARY_DIR = /home/ubisum/src/opencv
# Include the progress variables for this target. # Include the progress variables for this target.
include modules/line_descriptor/CMakeFiles/pch_Generate_opencv_line_descriptor.dir/progress.make include modules/line_descriptor/CMakeFiles/pch_Generate_opencv_line_descriptor.dir/progress.make
modules/line_descriptor/CMakeFiles/pch_Generate_opencv_line_descriptor: modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_Release.gch modules/line_descriptor/CMakeFiles/pch_Generate_opencv_line_descriptor: modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_RelWithDebInfo.gch
modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_Release.gch: modules/line_descriptor/src/precomp.hpp modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_RelWithDebInfo.gch: modules/line_descriptor/src/precomp.hpp
modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_Release.gch: modules/line_descriptor/precomp.hpp modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_RelWithDebInfo.gch: modules/line_descriptor/precomp.hpp
modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_Release.gch: lib/libopencv_line_descriptor_pch_dephelp.a modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_RelWithDebInfo.gch: lib/libopencv_line_descriptor_pch_dephelp.a
$(CMAKE_COMMAND) -E cmake_progress_report /home/ubisum/src/opencv/CMakeFiles $(CMAKE_PROGRESS_1) $(CMAKE_COMMAND) -E cmake_progress_report /home/ubisum/src/opencv/CMakeFiles $(CMAKE_PROGRESS_1)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "Generating precomp.hpp.gch/opencv_line_descriptor_Release.gch" @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "Generating precomp.hpp.gch/opencv_line_descriptor_RelWithDebInfo.gch"
cd /home/ubisum/src/opencv/modules/line_descriptor && /usr/bin/cmake -E make_directory /home/ubisum/src/opencv/modules/line_descriptor/precomp.hpp.gch cd /home/ubisum/src/opencv/modules/line_descriptor && /usr/bin/cmake -E make_directory /home/ubisum/src/opencv/modules/line_descriptor/precomp.hpp.gch
cd /home/ubisum/src/opencv/modules/line_descriptor && /usr/bin/c++ -O3 -DNDEBUG -DNDEBUG -fPIC -DOPENCV_NOSTL -I"/home/ubisum/src/opencv/modules/optim/include" -I"/home/ubisum/src/opencv/modules/features2d/include" -I"/home/ubisum/src/opencv/modules/highgui/include" -I"/home/ubisum/src/opencv/modules/imgproc/include" -I"/home/ubisum/src/opencv/modules/flann/include" -I"/home/ubisum/src/opencv/modules/core/include" -I"/home/ubisum/src/opencv/modules/line_descriptor" -I"/home/ubisum/src/opencv/modules/line_descriptor/src" -I"/home/ubisum/src/opencv/modules/line_descriptor/include" -isystem"/home/ubisum/src/opencv" -isystem"/usr/local/include/eigen3" -D__OPENCV_BUILD=1 -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -DCVAPI_EXPORTS -x c++-header -o /home/ubisum/src/opencv/modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_Release.gch /home/ubisum/src/opencv/modules/line_descriptor/precomp.hpp cd /home/ubisum/src/opencv/modules/line_descriptor && /usr/bin/c++ -O2 -g -fPIC -DOPENCV_NOSTL -I"/home/ubisum/src/opencv/modules/optim/include" -I"/home/ubisum/src/opencv/modules/features2d/include" -I"/home/ubisum/src/opencv/modules/highgui/include" -I"/home/ubisum/src/opencv/modules/imgproc/include" -I"/home/ubisum/src/opencv/modules/flann/include" -I"/home/ubisum/src/opencv/modules/core/include" -I"/home/ubisum/src/opencv/modules/line_descriptor" -I"/home/ubisum/src/opencv/modules/line_descriptor/src" -I"/home/ubisum/src/opencv/modules/line_descriptor/include" -isystem"/home/ubisum/src/opencv" -isystem"/usr/local/include/eigen3" -D__OPENCV_BUILD=1 -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mssse3 -msse4.1 -msse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -DCVAPI_EXPORTS -x c++-header -o /home/ubisum/src/opencv/modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_RelWithDebInfo.gch /home/ubisum/src/opencv/modules/line_descriptor/precomp.hpp
modules/line_descriptor/precomp.hpp: modules/line_descriptor/src/precomp.hpp modules/line_descriptor/precomp.hpp: modules/line_descriptor/src/precomp.hpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/ubisum/src/opencv/CMakeFiles $(CMAKE_PROGRESS_2) $(CMAKE_COMMAND) -E cmake_progress_report /home/ubisum/src/opencv/CMakeFiles $(CMAKE_PROGRESS_2)
...@@ -61,7 +61,7 @@ modules/line_descriptor/precomp.hpp: modules/line_descriptor/src/precomp.hpp ...@@ -61,7 +61,7 @@ modules/line_descriptor/precomp.hpp: modules/line_descriptor/src/precomp.hpp
cd /home/ubisum/src/opencv/modules/line_descriptor && /usr/bin/cmake -E copy /home/ubisum/src/opencv/modules/line_descriptor/src/precomp.hpp /home/ubisum/src/opencv/modules/line_descriptor/precomp.hpp cd /home/ubisum/src/opencv/modules/line_descriptor && /usr/bin/cmake -E copy /home/ubisum/src/opencv/modules/line_descriptor/src/precomp.hpp /home/ubisum/src/opencv/modules/line_descriptor/precomp.hpp
pch_Generate_opencv_line_descriptor: modules/line_descriptor/CMakeFiles/pch_Generate_opencv_line_descriptor pch_Generate_opencv_line_descriptor: modules/line_descriptor/CMakeFiles/pch_Generate_opencv_line_descriptor
pch_Generate_opencv_line_descriptor: modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_Release.gch pch_Generate_opencv_line_descriptor: modules/line_descriptor/precomp.hpp.gch/opencv_line_descriptor_RelWithDebInfo.gch
pch_Generate_opencv_line_descriptor: modules/line_descriptor/precomp.hpp pch_Generate_opencv_line_descriptor: modules/line_descriptor/precomp.hpp
pch_Generate_opencv_line_descriptor: modules/line_descriptor/CMakeFiles/pch_Generate_opencv_line_descriptor.dir/build.make pch_Generate_opencv_line_descriptor: modules/line_descriptor/CMakeFiles/pch_Generate_opencv_line_descriptor.dir/build.make
.PHONY : pch_Generate_opencv_line_descriptor .PHONY : pch_Generate_opencv_line_descriptor
......
FILE(REMOVE_RECURSE FILE(REMOVE_RECURSE
"CMakeFiles/pch_Generate_opencv_line_descriptor" "CMakeFiles/pch_Generate_opencv_line_descriptor"
"precomp.hpp.gch/opencv_line_descriptor_Release.gch" "precomp.hpp.gch/opencv_line_descriptor_RelWithDebInfo.gch"
"precomp.hpp" "precomp.hpp"
) )
......
CMAKE_PROGRESS_1 = CMAKE_PROGRESS_1 =
CMAKE_PROGRESS_2 = CMAKE_PROGRESS_2 = 98
...@@ -139,6 +139,20 @@ depend: ...@@ -139,6 +139,20 @@ depend:
cd /home/ubisum/src/opencv && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 cd /home/ubisum/src/opencv && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend .PHONY : depend
# Convenience name for target.
modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/rule:
cd /home/ubisum/src/opencv && $(MAKE) -f CMakeFiles/Makefile2 modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/rule
.PHONY : modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/rule
# Convenience name for target.
example_line_descriptor_compute_descriptors: modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/rule
.PHONY : example_line_descriptor_compute_descriptors
# fast build rule for target.
example_line_descriptor_compute_descriptors/fast:
cd /home/ubisum/src/opencv && $(MAKE) -f modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/build.make modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/build
.PHONY : example_line_descriptor_compute_descriptors/fast
# Convenience name for target. # Convenience name for target.
modules/line_descriptor/CMakeFiles/example_line_descriptor_lines_extraction.dir/rule: modules/line_descriptor/CMakeFiles/example_line_descriptor_lines_extraction.dir/rule:
cd /home/ubisum/src/opencv && $(MAKE) -f CMakeFiles/Makefile2 modules/line_descriptor/CMakeFiles/example_line_descriptor_lines_extraction.dir/rule cd /home/ubisum/src/opencv && $(MAKE) -f CMakeFiles/Makefile2 modules/line_descriptor/CMakeFiles/example_line_descriptor_lines_extraction.dir/rule
...@@ -219,6 +233,30 @@ opencv_line_descriptor_pch_dephelp.cxx.s: ...@@ -219,6 +233,30 @@ opencv_line_descriptor_pch_dephelp.cxx.s:
cd /home/ubisum/src/opencv && $(MAKE) -f modules/line_descriptor/CMakeFiles/opencv_line_descriptor_pch_dephelp.dir/build.make modules/line_descriptor/CMakeFiles/opencv_line_descriptor_pch_dephelp.dir/opencv_line_descriptor_pch_dephelp.cxx.s cd /home/ubisum/src/opencv && $(MAKE) -f modules/line_descriptor/CMakeFiles/opencv_line_descriptor_pch_dephelp.dir/build.make modules/line_descriptor/CMakeFiles/opencv_line_descriptor_pch_dephelp.dir/opencv_line_descriptor_pch_dephelp.cxx.s
.PHONY : opencv_line_descriptor_pch_dephelp.cxx.s .PHONY : opencv_line_descriptor_pch_dephelp.cxx.s
samples/compute_descriptors.o: samples/compute_descriptors.cpp.o
.PHONY : samples/compute_descriptors.o
# target to build an object file
samples/compute_descriptors.cpp.o:
cd /home/ubisum/src/opencv && $(MAKE) -f modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/build.make modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.o
.PHONY : samples/compute_descriptors.cpp.o
samples/compute_descriptors.i: samples/compute_descriptors.cpp.i
.PHONY : samples/compute_descriptors.i
# target to preprocess a source file
samples/compute_descriptors.cpp.i:
cd /home/ubisum/src/opencv && $(MAKE) -f modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/build.make modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.i
.PHONY : samples/compute_descriptors.cpp.i
samples/compute_descriptors.s: samples/compute_descriptors.cpp.s
.PHONY : samples/compute_descriptors.s
# target to generate assembly for a file
samples/compute_descriptors.cpp.s:
cd /home/ubisum/src/opencv && $(MAKE) -f modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/build.make modules/line_descriptor/CMakeFiles/example_line_descriptor_compute_descriptors.dir/samples/compute_descriptors.cpp.s
.PHONY : samples/compute_descriptors.cpp.s
samples/lines_extraction.o: samples/lines_extraction.cpp.o samples/lines_extraction.o: samples/lines_extraction.cpp.o
.PHONY : samples/lines_extraction.o .PHONY : samples/lines_extraction.o
...@@ -322,6 +360,7 @@ help: ...@@ -322,6 +360,7 @@ help:
@echo "... clean" @echo "... clean"
@echo "... depend" @echo "... depend"
@echo "... edit_cache" @echo "... edit_cache"
@echo "... example_line_descriptor_compute_descriptors"
@echo "... example_line_descriptor_lines_extraction" @echo "... example_line_descriptor_lines_extraction"
@echo "... install" @echo "... install"
@echo "... install/local" @echo "... install/local"
...@@ -334,6 +373,9 @@ help: ...@@ -334,6 +373,9 @@ help:
@echo "... opencv_line_descriptor_pch_dephelp.o" @echo "... opencv_line_descriptor_pch_dephelp.o"
@echo "... opencv_line_descriptor_pch_dephelp.i" @echo "... opencv_line_descriptor_pch_dephelp.i"
@echo "... opencv_line_descriptor_pch_dephelp.s" @echo "... opencv_line_descriptor_pch_dephelp.s"
@echo "... samples/compute_descriptors.o"
@echo "... samples/compute_descriptors.i"
@echo "... samples/compute_descriptors.s"
@echo "... samples/lines_extraction.o" @echo "... samples/lines_extraction.o"
@echo "... samples/lines_extraction.i" @echo "... samples/lines_extraction.i"
@echo "... samples/lines_extraction.s" @echo "... samples/lines_extraction.s"
......
...@@ -12,7 +12,7 @@ IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) ...@@ -12,7 +12,7 @@ IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" "" STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
ELSE(BUILD_TYPE) ELSE(BUILD_TYPE)
SET(CMAKE_INSTALL_CONFIG_NAME "Release") SET(CMAKE_INSTALL_CONFIG_NAME "RelWithDebInfo")
ENDIF(BUILD_TYPE) ENDIF(BUILD_TYPE)
MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
......
Binary descriptors for lines extracted from an image
====================================================
.. highlight:: cpp
Introduction
------------
One of the most challenging activities in computer vision is the extraction of useful information from a given image. Such information, usually comes in the form of points that preserve some kind of property (for instance, they are scale-invariant) and are actually representative of input image.
The goal of this module is seeking a new kind of representative information inside an image and providing the functionalities for its extraction and representation. In particular, differently from previous methods for detection of relevant elements inside an image, lines are extracted in place of points; a new class is defined ad hoc to summarize a line's properties, for reuse and plotting purposes.
A class to represent a line: KeyLine
------------------------------------
As aformentioned, it is been necessary to design a class that fully stores the information needed to characterize completely a line and plot it on image it was extracted from, when required.
*KeyLine* class has been created for such goal; it is mainly inspired to Feature2d's KeyPoint class, since KeyLine shares some of *KeyPoint*'s fields, even if a part of them assumes a different meaning, when speaking about lines.
In particular:
* the *class_id* field is used to gather lines extracted from different octaves which refer to same line inside original image (such lines and the one they represent in original image share the same *class_id* value)
* the *angle* field represents line's slope with respect to (positive) X axis
* the *pt* field represents line's midpoint
* the *response* field is computed as the ratio between the line's length and maximum between image's width and height
* the *size* field is the area of the smallest rectangle containing line
Apart from fields inspired to KeyPoint class, KeyLines stores information about extremes of line in original image and in octave it was extracted from, about line's length and number of pixels it covers. Code relative to KeyLine class is reported in the following snippet:
.. ocv:class:: KeyLine
::
class CV_EXPORTS_W KeyLine
{
public:
/* orientation of the line */
float angle;
/* object ID, that can be used to cluster keylines by the line they represent */
int class_id;
/* octave (pyramid layer), from which the keyline has been extracted */
int octave;
/* coordinates of the middlepoint */
Point pt;
/* the response, by which the strongest keylines have been selected.
It's represented by the ratio between line's length and maximum between
image's width and height */
float response;
/* minimum area containing line */
float size;
/* lines's extremes in original image */
float startPointX;
float startPointY;
float endPointX;
float endPointY;
/* line's extremes in image it was extracted from */
float sPointInOctaveX;
float sPointInOctaveY;
float ePointInOctaveX;
float ePointInOctaveY;
/* the length of line */
float lineLength;
/* number of pixels covered by the line */
unsigned int numOfPixels;
/* constructor */
KeyLine(){}
};
Binary descriptors for lines extracted from an image
====================================================
.. highlight:: cpp
Introduction
------------
One of the most challenging activities in computer vision is the extraction of useful information from a given image. Such information, usually comes in the form of points that preserve some kind of property (for instance, they are scale-invariant) and are actually representative of input image.
The goal of this module is seeking a new kind of representative information inside an image and providing the functionalities for its extraction and representation. In particular, differently from previous methods for detection of relevant elements inside an image, lines are extracted in spite of points; a new class is defined ad hoc to summarize a line's properties, for reuse and plotting purposes.
A class to represent a line: KeyLine
------------------------------------
As aformentioned, it is been necessary to design a class that fully stores the information needed to characterize completely a line and plot it on image it was extracted from, when required.
*KeyLine* class has been created for such goal; it is mainly inspired to Feature2d's KeyPoint class, since KeyLine shares some of *KeyPoint*'s fields, even if a part of them assumes a different meaning, when speaking about lines.
In particular:
* the *class_id* field is used to gather lines extracted from different octaves which refer to same line inside original image (such lines and the one they represent in original image share the same *class_id* value)
* the *angle* field represents line's slope with respect to (positive) X axis
* the *pt* field represents line's midpoint
* the *response* field is computed as the ratio between the line's length and maximum between image's width and height
* the *size* field is the area of the smallest rectangle containing line
Apart from fields inspired to KeyPoint class, KeyLines stores information about extremes of line in original image and in octave it was extracted from, about line's length and number of pixels it covers. Code relative to KeyLine class is reported in the following snippet:
.. ocv:class:: KeyLine
::
class CV_EXPORTS_W KeyLine
{
public:
/* orientation of the line */
float angle;
/* object ID, that can be used to cluster keylines by the line they represent */
int class_id;
/* octave (pyramid layer), from which the keyline has been extracted */
int octave;
/* coordinates of the middlepoint */
Point pt;
/* the response, by which the strongest keylines have been selected.
It's represented by the ratio between line's length and maximum between
image's width and height */
float response;
/* minimum area containing line */
float size;
/* lines's extremes in original image */
float startPointX;
float startPointY;
float endPointX;
float endPointY;
/* line's extremes in image it was extracted from */
float sPointInOctaveX;
float sPointInOctaveY;
float ePointInOctaveX;
float ePointInOctaveY;
/* the length of line */
float lineLength;
/* number of pixels covered by the line */
unsigned int numOfPixels;
/* constructor */
KeyLine(){}
};
...@@ -55,9 +55,29 @@ ...@@ -55,9 +55,29 @@
namespace cv namespace cv
{ {
class CV_EXPORTS_W KeyLine: public KeyPoint class CV_EXPORTS_W KeyLine
{ {
public: public:
/* orientation of the line */
float angle;
/* object ID, that can be used to cluster keylines by the line they represent */
int class_id;
/* octave (pyramid layer), from which the keyline has been extracted */
int octave;
/* coordinates of the middlepoint */
Point pt;
/* the response, by which the strongest keylines have been selected.
It's represented by the ratio between line's length and maximum between
image's width and height */
float response;
/* minimum area containing line */
float size;
/* lines's extremes in original image */ /* lines's extremes in original image */
float startPointX; float startPointX;
float startPointY; float startPointY;
...@@ -76,9 +96,11 @@ namespace cv ...@@ -76,9 +96,11 @@ namespace cv
/* number of pixels covered by the line */ /* number of pixels covered by the line */
unsigned int numOfPixels; unsigned int numOfPixels;
/* constructor */
KeyLine(){}
}; };
class CV_EXPORTS_W BinaryDescriptor: public Feature2D class CV_EXPORTS_W BinaryDescriptor: public Algorithm
{ {
public: public:
...@@ -91,9 +113,6 @@ namespace cv ...@@ -91,9 +113,6 @@ namespace cv
/* the NNDR threshold for line descriptor distance, default is 0.6 */ /* the NNDR threshold for line descriptor distance, default is 0.6 */
CV_PROP_RW float NNDRThreshold; CV_PROP_RW float NNDRThreshold;
/* the size of Gaussian kernel: ksize X ksize, default value is 5 */
CV_PROP_RW int ksize_;
/* the number of image octaves (default = 5) */ /* the number of image octaves (default = 5) */
CV_PROP_RW int numOfOctave_; CV_PROP_RW int numOfOctave_;
...@@ -121,6 +140,8 @@ namespace cv ...@@ -121,6 +140,8 @@ namespace cv
/* constructors with smart pointers */ /* constructors with smart pointers */
static Ptr<BinaryDescriptor> createBinaryDescriptor(); static Ptr<BinaryDescriptor> createBinaryDescriptor();
static Ptr<BinaryDescriptor> createBinaryDescriptor(Params parameters); static Ptr<BinaryDescriptor> createBinaryDescriptor(Params parameters);
/* destructor */
~BinaryDescriptor(); ~BinaryDescriptor();
/* read parameters from a FileNode object and store them (class function ) */ /* read parameters from a FileNode object and store them (class function ) */
...@@ -131,26 +152,22 @@ namespace cv ...@@ -131,26 +152,22 @@ namespace cv
/* requires line detection (only one image) */ /* requires line detection (only one image) */
CV_WRAP void detect( const Mat& image, CV_WRAP void detect( const Mat& image,
CV_OUT std::vector<KeyPoint>& keypoints,
const Mat& mask=Mat() );
CV_WRAP void detectKL( const Mat& image,
CV_OUT std::vector<KeyLine>& keypoints, CV_OUT std::vector<KeyLine>& keypoints,
const Mat& mask=Mat() ); const Mat& mask=Mat() );
/* requires line detection (more than one image) */ /* requires line detection (more than one image) */
void detect( const std::vector<Mat>& images, void detect( const std::vector<Mat>& images,
std::vector<std::vector<KeyPoint> >& keypoints, std::vector<std::vector<KeyLine> >& keypoints,
const std::vector<Mat>& masks=std::vector<Mat>() ) const; const std::vector<Mat>& masks=std::vector<Mat>() ) const;
/* requires descriptors computation (only one image) */ /* requires descriptors computation (only one image) */
CV_WRAP void compute( const Mat& image, CV_WRAP void compute( const Mat& image,
CV_OUT CV_IN_OUT std::vector<KeyPoint>& keypoints, CV_OUT CV_IN_OUT std::vector<KeyLine>& keylines,
CV_OUT Mat& descriptors ) const; CV_OUT Mat& descriptors ) const;
/* requires descriptors computation (more than one image) */ /* requires descriptors computation (more than one image) */
void compute( const std::vector<Mat>& images, void compute( const std::vector<Mat>& images,
std::vector<std::vector<KeyPoint> >& keypoints, std::vector<std::vector<KeyLine> >& keylines,
std::vector<Mat>& descriptors ) const; std::vector<Mat>& descriptors ) const;
/*return descriptor size */ /*return descriptor size */
...@@ -168,7 +185,7 @@ namespace cv ...@@ -168,7 +185,7 @@ namespace cv
/* definition of operator (), as required by Feature2D */ /* definition of operator (), as required by Feature2D */
CV_WRAP_AS(detectAndCompute) virtual void operator()( InputArray image, CV_WRAP_AS(detectAndCompute) virtual void operator()( InputArray image,
InputArray mask, InputArray mask,
CV_OUT std::vector<KeyPoint>& keypoints, CV_OUT std::vector<KeyLine>& keylines,
OutputArray descriptors, OutputArray descriptors,
bool useProvidedKeypoints=false ) const; bool useProvidedKeypoints=false ) const;
...@@ -176,17 +193,13 @@ namespace cv ...@@ -176,17 +193,13 @@ namespace cv
protected: protected:
/* implementation of line detection */ /* implementation of line detection */
virtual void detectImpl( const Mat& image, virtual void detectImpl( const Mat& image,
std::vector<KeyPoint>& keypoints, std::vector<KeyLine>& keylines,
const Mat& mask=Mat() ) const;
virtual void detectImplKL( const Mat& image,
std::vector<KeyLine>& keypoints,
const Mat& mask=Mat() ) const; const Mat& mask=Mat() ) const;
/* implementation of descriptors' computation */ /* implementation of descriptors' computation */
virtual void computeImpl( const Mat& image, virtual void computeImpl( const Mat& image,
std::vector<KeyPoint>& keypoints, std::vector<KeyLine>& keylines,
Mat& descriptors ) const; Mat& descriptors ) const;
/* function inherited by Algorithm */ /* function inherited by Algorithm */
......
cmake_minimum_required(VERSION 2.8)
project(map_test)
find_package(OpenCV REQUIRED)
set(SOURCES lines_extraction.cpp ../src/BinaryDescriptor.cpp)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(lines_extraction ${SOURCES} ${HEADERS})
target_link_libraries(lines_extraction ${OpenCV_LIBS})
cmake_minimum_required(VERSION 2.8)
project(line_descriptor)
find_package(OpenCV REQUIRED)
set(SOURCES lines_extraction.cpp compute_descriptors.cpp ../src/BinaryDescriptor.cpp)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(lines_extraction compute_descriptors ${SOURCES} ${HEADERS})
target_link_libraries(lines_extraction compute_descriptors ${OpenCV_LIBS})
#include <opencv2/line_descriptor.hpp>
#include "opencv2/core/utility.hpp"
#include "opencv2/core/private.hpp"
#include <opencv2/imgproc.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
static const char* keys =
{
"{@image_path | | Image path }"
};
static void help()
{
cout << "\nThis example shows the functionalities of lines extraction " <<
"and descriptors computation furnished by BinaryDescriptor class\n" <<
"Please, run this sample using a command in the form\n" <<
"./example_line_descriptor_compute_descriptors <path_to_input_image>" << endl;
}
inline void writeMat(cv::Mat m, std::string name, int n)
{
std::stringstream ss;
std::string s;
ss << n;
ss >> s;
std::string fileNameConf = name + s;
cv::FileStorage fsConf(fileNameConf, cv::FileStorage::WRITE);
fsConf << "m" << m;
fsConf.release();
}
int main( int argc, char** argv )
{
/* get parameters from comand line */
CommandLineParser parser( argc, argv, keys );
String image_path = parser.get<String>( 0 );
if(image_path.empty())
{
help();
return -1;
}
/* load image */
cv::Mat imageMat = imread(image_path, 0);
if(imageMat.data == NULL)
{
std::cout << "Error, image could not be loaded. Please, check its path" << std::endl;
}
/* create a random binary mask */
// cv::Mat mask(imageMat.size(), CV_8UC1);
// cv::randu(mask, Scalar::all(0), Scalar::all(1));
cv::Mat mask = Mat::ones(imageMat.size(), CV_8UC1);
/* create a pointer to a BinaryDescriptor object with default parameters */
Ptr<BinaryDescriptor> bd = BinaryDescriptor::createBinaryDescriptor();
/* compute lines */
std::vector<KeyLine> keylines;
bd->detect(imageMat, keylines, mask);
std::vector<KeyLine> octave0;
for(size_t i = 0; i<keylines.size(); i++)
{
if(keylines[i].octave == 0)
octave0.push_back(keylines[i]);
}
/* compute descriptors */
cv::Mat descriptors;
bd->compute(imageMat, octave0, descriptors);
writeMat(descriptors, "old_code", 0);
}
#include <opencv2/line_descriptor.hpp> #include <opencv2/line_descriptor.hpp>
#include "opencv2/core/utility.hpp" #include "opencv2/core/utility.hpp"
#include "opencv2/core/private.hpp" #include "opencv2/core/private.hpp"
#include <opencv2/imgproc.hpp> #include <opencv2/imgproc.hpp>
...@@ -18,6 +17,14 @@ static const char* keys = ...@@ -18,6 +17,14 @@ static const char* keys =
}; };
static void help()
{
cout << "\nThis example shows the functionalities of lines extraction " <<
"furnished by BinaryDescriptor class\n" <<
"Please, run this sample using a command in the form\n" <<
"./example_line_descriptor_lines_extraction <path_to_input_image>" << endl;
}
int main( int argc, char** argv ) int main( int argc, char** argv )
{ {
/* get parameters from comand line */ /* get parameters from comand line */
...@@ -26,7 +33,7 @@ int main( int argc, char** argv ) ...@@ -26,7 +33,7 @@ int main( int argc, char** argv )
if(image_path.empty()) if(image_path.empty())
{ {
// help(); help();
return -1; return -1;
} }
...@@ -49,7 +56,7 @@ int main( int argc, char** argv ) ...@@ -49,7 +56,7 @@ int main( int argc, char** argv )
vector<KeyLine> lines; vector<KeyLine> lines;
/* extract lines */ /* extract lines */
bd->detectKL(imageMat, lines, mask); bd->detect(imageMat, lines, mask);
/* draw lines extracted from octave 0 */ /* draw lines extracted from octave 0 */
cv::Mat output = imageMat.clone(); cv::Mat output = imageMat.clone();
...@@ -70,9 +77,6 @@ int main( int argc, char** argv ) ...@@ -70,9 +77,6 @@ int main( int argc, char** argv )
/* draw line */ /* draw line */
line(output, pt1, pt2, Scalar(B,G,R), 5); line(output, pt1, pt2, Scalar(B,G,R), 5);
std::cout << "Dati linea" << " " << kl.startPointX << " " <<
kl.startPointY << " " << kl.endPointX << " " <<
kl.endPointY << " " << kl.lineLength << std::endl;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment