线段分割算法实现

线段分割算法实验

三种线段分割方法:line segment detector(lsd) & edge drawing line detector(edl) & hough line detector(standard &.probabilistic) for detection
代码地址:c++版本
c版本LSD
MATLAB&OPENCV

工程中加入opencv库

main函数中加入下面代码:

#include 
#include 
using namespace cv;

在CMakeLists.txt中自定义opencv库的调用:

cmake_minimum_required(VERSION 2.8)

set(CMAKE_C_COMPILER "/usr/bin/gcc-4.9")
set(CMAKE_CXX_COMPILER "/usr/bin/g++-4.9")

project( main)

find_package(OpenCV 3.0 QUIET)
if(NOT OpenCV_FOUND)
   find_package(OpenCV 2.4.3 QUIET)
   if(NOT OpenCV_FOUND)
      message(FATAL_ERROR "OpenCV > 2.4.3 not found.")
   endif()
endif()

MESSAGE(STATUS "OpenCV_DIR: ${OpenCV_DIR}")
MESSAGE(STATUS "OpenCV_LIBS: ${OpenCV_LIBS}")
MESSAGE(STATUS "OpenCV_VERSION: ${OpenCV_VERSION}")
MESSAGE(STATUS "OpenCV_INSTALL_PATH: ${OpenCV_INSTALL_PATH}")
MESSAGE(STATUS "OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")

include_directories(${OpenCV_INCLUDE_DIRS})
add_executable( main DisplayImage.cpp )
target_link_libraries( main${OpenCV_LIBS} )

解决error

报错OpenCV Error: Assertion failed (scn == 3 || scn== 4) in cv::cvtColor

  • 提示:把图图片的路径写对

error:invalid operands of types ‘int’ and ‘’ to binary ‘operator<<’

  • 原因是将:
cout<<"图片宽 %d 高 %d"<<W<<H<<endl;

写成了

cout<<"图片宽 %d 高 %d"<<W,H<<endl;

其实上述也是错误语法,正确表示为:

cout<<"图片宽:"<<W<<" 图片高:"<<H<<endl;

LSD线段分割算法实验

资源:百度网盘地址

你可能感兴趣的:(SLAM实验)