线段分割算法实验
三种线段分割方法:line segment detector(lsd) & edge drawing line detector(edl) & hough line detector(standard &.probabilistic) for detection
代码地址:c++版本
c版本LSD
MATLAB&OPENCV
工程中加入opencv库
main函数中加入下面代码:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
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线段分割算法实验
资源:百度网盘地址