基于边缘的模板匹配算法

使用要求:

vs2017以上
vcpkg (使用vcpkg安装opencv,否则需要调整cmakelist 的相应内容)
cmake最新版
opencv 4.3
算法库:https://github.com/meiqua/shape_based_matching
这个算法库是基于linemod算法实现的,类似于halcon的形状匹配,其实opencv 也有类似的算法类 cv::linemod,不过需要进行封装。

使用流程:

1.安装上述软件
2.使用vs用打开文件夹的方式打开shape_based_matching算法所在的文件夹
3.由于shape_based_matching算法有点老了,需要修改其中的CMakeLists.txt文件才能编译运行。
修改内容如下:


SET(COMMON_COMPILE_FLAGS "-fopenmp -Wall ")
#SET(CMAKE_CXX_FLAGS "${PLATFORM_COMPILE_FLAGS} ${COMMON_COMPILE_FLAGS} $ENV{CXXFLAGS}")
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g2 -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "-O3")

# opencv
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /opt/ros/kinetic)
find_package(OpenCV CONFIG REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

4.直接运行即可

算法使用说明

1.算法需要先创建模板,然后读取模板文件进行识别。
2.例子在test.cpp中。使用时,修改里面的main函数即可。
3.

int main(){
    // scale_test("test"); //图片缩放的识别
    angle_test("test", true); // test or train  旋转图片的识别
    // noise_test("test");//噪点干扰测试
    return 0;
}

你可能感兴趣的:(opencv,opencv,c++)