# 模板匹配
- 基于[Fastest Image Pattern Matching](https://github.com/DennisLiu1993/Fastest_Image_Pattern_Matching)
![demo1](asserts/demo1.png)
![demo2](asserts/demo2.png)
## 改进
1. 封装为更易用的库
2. 跨平台适配
## 计划
- [ ] 优化代码结构
- [x] 支持python
## 编译
### clone代码
git克隆时同步克隆子模块
```shell
git clone --recurse-submodules https://github.com/acai66/opencv_matching.git
```
### 编译代码
#### Windows
使用各种编译cmake的方法(vs2022、vs2019、vs2017、或cmake-gui)编译即可,演示使用vs2022编译,其余工具供参考。
编译演示视频:[B站链接](https://www.bilibili.com/video/BV1hu4m1F7D1)
#### Linux
演示Ubuntu 22.04下编译,其他发行版类似
1. 安装依赖和编译工具
```shell
sudo apt-get update
sudo apt-get install libopencv-dev build-essential cmake
```
2. 终端进入到项目根目录,创建build文件夹
```shell
cd opencv_matching
mkdir build
cd build
```
3. cmake构建
```shell
cmake -DCMAKE_INSTALL_PREFIX=./install ..
```
4. make编译
```shell
make
```
5. 安装
```shell
make install
```
成功后会在 `build` 目录下生成 `install` 文件夹,里面包含编译好的库(lib)和头文件(include), 以及 `demo` 可执行文件(bin).
目录结构如下:
```shell
install
├── bin
│ └── demo
├── include
│ ├── matcher.h
│ └── templatematching.h
└── lib
├── libtemplatematching.so
└── libtemplatematching_ctype.so
```
到 `install/bin` 下运行 `demo` 时,需要确保 `libtemplatematching.so` 在运行目录下,或者将 `libtemplatematching.so` 放到系统库目录下。
```shell
cd install/bin/
cp ../lib/libtemplatematching.so ./
./demo
```
### 注意事项
- 作者机器上不同项目使用的opencv版本不同,所以没有把opencv添加到系统环境变量中,opencv放进了3rdParty文件夹下,目录结构参考如下:
![windows_opencv_path](asserts/opencv_path.png)
- 如需修改opencv路径,可能需要修改如下信息,具体参考 `CMakeLists.txt` 和 `matcher/CMakeLists.txt` 文件:
`CMakeLists.txt`
```cmake
if(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
set(OpenCV_DIR ${PROJECT_SOURCE_DIR}/3rdParty/opencv)
endif()
```
`matcher/CMakeLists.txt`
```cmake
if(WIN32)
install(FILES
${PROJECT_SOURCE_DIR}/3rdParty/opencv/x64/vc16/bin/opencv_world490.dll
TYPE BIN
DESTINATION ${CMAKE_INSTALL_BINDIR})
else()
```
## 使用
将编译的库集成到其他项目中
编译完成后,可以在安装目录下找到 `templatematching.dll` 和 `templatematching_ctype.dll`
### C++
c++编译时只需要引入头文件即可,dll是在运行时加载的,只需要 `templatematching.dll`,详细调用参考 `demo.cpp`
### python
python使用时需要将 `templatematching.dll` 和 `templatematching_ctype.dll` 放进运行目录,演示代码参考 `py_demo.py`
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
适用于Windows和Linux系统-基于OpenCV和C++开发的模板匹配库源码(支持旋转匹配、跨平台使用).zip 【说明】 【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【特别强调】 项目下载解压后,项目名字和项目路径不要用中文,建议解压重命名为英文名字后再运行!有问题私信沟通,祝顺利! 适用于Windows和Linux系统-基于OpenCV和C++开发的模板匹配库源码(支持旋转匹配、跨平台使用).zip适用于Windows和Linux系统-基于OpenCV和C++开发的模板匹配库源码(支持旋转匹配、跨平台使用).zip适用于Windows和Linux系统-基于OpenCV和C++开发的模板匹配库源码(支持旋转匹配、跨平台使用).zip适用于Windows和Linux系统-基于OpenCV和C++开发的模板匹配库源码(支持旋转匹配、跨平台使用).zip适用于Windows和Linux系统-基于OpenCV和C++开发的模板匹配库源码(支持旋转匹配、跨平台使用).zip
资源推荐
资源详情
资源评论
收起资源包目录
适用于Windows和Linux系统-基于OpenCV和C++开发的模板匹配库源码(支持旋转匹配、跨平台使用).zip (42个子文件)
asserts
demo2.png 2.47MB
demo1.png 1.92MB
opencv_path.png 125KB
include
matcher.h 1KB
template_matching.h 1KB
3rdParty
spdlog
CMakeLists.txt 1KB
VersionInfo.rc.in 996B
LICENSE 1KB
UploadProjectCode_all_bk
asserts
demo2.png 2.47MB
demo1.png 1.92MB
opencv_path.png 125KB
include
matcher.h 1KB
template_matching.h 1KB
3rdParty
spdlog
CMakeLists.txt 1KB
VersionInfo.rc.in 996B
LICENSE 1KB
.gitmodules 94B
matcher
CMakeLists.txt 3KB
matcher.cpp 740B
base_matcher
base_matcher.cpp 2KB
base_matcher.h 1KB
Pattern_Matching
PatternMatching.h 6KB
PatternMatching.cpp 34KB
matcher_ctype.cpp 5KB
.gitignore 7KB
demo.cpp 6KB
项目必读.txt 1KB
README.md 3KB
py_demo.py 4KB
.gitmodules 94B
matcher
CMakeLists.txt 3KB
matcher.cpp 740B
base_matcher
base_matcher.cpp 2KB
base_matcher.h 1KB
Pattern_Matching
PatternMatching.h 6KB
PatternMatching.cpp 34KB
matcher_ctype.cpp 5KB
.gitignore 7KB
demo.cpp 6KB
项目必读.txt 1KB
README.md 3KB
py_demo.py 4KB
共 42 条
- 1
资源评论
.whl
- 粉丝: 3766
- 资源: 4199
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功