【VM服务管家】VM4.x算法模块开发_4.2 联合OpenCV开发

本文介绍了在VM4.x环境下,结合VS2013与OpenCV3.1.0进行图像处理算法开发的详细步骤。包括环境配置,如设置环境变量、在VS中配置OpenCV的包含目录和库目录,以及如何利用OpenCV进行图像类算法的开发,从HKA_IMAGE到Mat的转换,调用算子API,再到Mat转回HKA_IMAGE并输出。

4.2.1 环境配置:使用OpenCV开发的环境配置

描述
环境:VM4.0.0及以上 + VS2013
现象:使用第三方库OpenCV开发时,如何进行环境配置。
解答
环境配置时,首先要注意OpenCV版本与集成环境VS版本(生成工具)的对应。

  1. 在官网下载相应的OpenCV,例如VS2013(VC=120)这种老版本的集成环境,则OpencCV的版本则需包含VC=120,所以OpenCV的3.1.0版本满足需求。

  2. 将OpenCV的安装包进行解压,然后进行系统环境配置。在Path中添加OpenCV的相关路径。如D: \OpenCV3.1.0\opencv\build\x64\vc12\bin
    在这里插入图片描述

  3. 接着在VS中新建项目,打开项目的属性页。
    (1)在VC++目录=>包含目录中添加三个OpenCV的相关路径。
    在这里插入图片描述

(2)在VC++目录=>库含目录中添加一个OpenCV的相关路径。
在这里插入图片描述

(3)在链接器=>库含目录中添加opencv_world310.lib。(注意:如果是Debug编译,则是添加opencv_world310d.lib。标红字体对应的是OpenCV版本)

在 `opencv-4.5.4` 目录下,不同的文件和文件夹在编译过程中有着不同的作用,以下是一些主要的文件和文件夹及其作用: #### `CMakeLists.txt` 这是 CMake 的配置文件,它定义了项目的编译规则、依赖项、目标文件等信息。在运行 `cmake` 命令时,CMake 会读取这个文件,并根据其中的规则生成相应的 Makefile 或其他构建文件。例如,设置编译选项、指定源文件路径、添加库依赖等操作都在这个文件中完成。 #### `modules` 文件夹 该文件夹包含了 OpenCV 的各个模块,每个模块对应着不同的功能,如计算机视觉算法图像处理、机器学习等。在编译过程中,CMake 会根据配置选项决定编译哪些模块,并将这些模块编译成静态库或共享库。例如,在配置时通过 `-D WITH_FFMPEG=ON` 等选项可以控制是否编译包含视频处理功能的模块。 #### `samples` 文件夹 这个文件夹中存放着 OpenCV 的示例代码,这些代码可以帮助开发者快速了解和使用 OpenCV 的各种功能。虽然这些示例代码本身不会直接影响编译过程,但在编译完成后,可以使用这些示例代码来验证 OpenCV 是否正确安装和配置。 #### `include` 文件夹 该文件夹包含了 OpenCV 的头文件,这些头文件定义了 OpenCV 的各种类、函数和数据结构。在编译使用 OpenCV 的程序时,编译器需要包含这些头文件才能找到相应的声明。 #### `build` 文件夹(通常是手动创建的) 这是编译过程中生成临时文件和最终构建结果的目录。在运行 `cmake` 命令时,会在这个目录下生成 Makefile 或其他构建文件,然后使用 `make` 命令在该目录下进行编译。编译完成后,生成的库文件、可执行文件等都会存放在这个目录中。 #### `opencv_contrib` 文件夹 如果使用了 `opencv_contrib` 扩展模块,需要将其解压后放入 `opencv` 解压后的文件夹,并修改文件夹名字为 `opencv_contrib`。通过 `-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules` 选项,CMake 会在编译过程中包含这些额外的模块。 这些文件和文件夹的存在和正确配置对于 OpenCV 的编译过程至关重要。如果某些文件缺失或配置不正确,可能会导致编译失败或无法使用某些功能。例如,如果 `CMakeLists.txt` 文件存在语法错误,`cmake` 命令将无法正确生成构建文件;如果 `modules` 文件夹中的某些模块依赖的库没有安装,编译过程中可能会出现链接错误。 ### 示例代码 以下是一个简单的示例,展示了如何使用 `opencv-4.5.4` 编译一个简单的程序: ```cpp #include <opencv2/opencv.hpp> #include <iostream> int main() { cv::Mat image = cv::imread("test.jpg", cv::IMREAD_COLOR); if (image.empty()) { std::cout << "Could not open or find the image" << std::endl; return -1; } cv::imshow("Display window", image); cv::waitKey(0); return 0; } ``` 编译这个程序的命令如下: ```sh g++ -o test test.cpp `pkg-config --cflags --libs opencv4` ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值