OpenCV >> C/C++
fast line detector
參考資訊:
1. example
2. createFastLineDetector
prototype
Ptr<FastLineDetector> cv::ximgproc::createFastLineDetector( int _length_threshold = 10, float _distance_threshold = 1.414213562f, double _canny_th1 = 50.0, double _canny_th2 = 50.0, int _canny_aperture_size = 3, bool _do_merge = false);
main.cpp
#include <iostream> #include <opencv2/imgproc.hpp> #include <opencv2/ximgproc.hpp> #include <opencv2/imgcodecs.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace std; using namespace cv; using namespace cv::ximgproc; int main(int argc, char** argv) { Mat image = imread("main.jpg", IMREAD_GRAYSCALE); if(image.empty()){ printf("failed to load image\n"); return -1; } Ptr<FastLineDetector> fld = createFastLineDetector(); vector<Vec4f> lines_fld; lines_fld.clear(); fld->detect(image, lines_fld); Mat line_image_fld(image); fld->drawSegments(line_image_fld, lines_fld); imshow("FLD result", line_image_fld); waitKey(); return 0; }
CMakeLists.txt
cmake_minimum_required(VERSION 2.8) project(main) find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) add_executable(main main.cpp) target_link_libraries(main ${OpenCV_LIBS})
編譯並且執行
$ cmake . $ make $ ./main
完成