上位机图像处理和嵌入式模块部署(windows opencv)

news/2024/12/22 16:43:53/

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        opencv可以运行在多个平台上面,当然windows平台也不意外。目前来说,opencv使用已经非常方便了,如果不想自己编译,可以直接使用官方编译好的版本,直接下载接好。配置好include和lib之后,就可以进行图像的处理了。当然有一个地方需要注意下,那就是创建的vs工程必须是x64工程。因为下载的opencv本身就是64位代码。

1、下载opencv

        可以直接到官网下载最新的opencv即可。下载后解压到一个目录下面,

https://opencv.org/releases/

2、创建一个console工程

        之前我们创建了qt工程,然后配置opencv。如果不想使用界面的话,直接使用console工程也是可以处理图像的,只是需要把debug的版本从x86切换成x64。

3、准备好测试代码

#include <opencv2/opencv.hpp>
#include <iostream>int main() 
{// read imagecv::Mat image = cv::imread("D:/lena.png");// check if image has been loaded successfullyif (image.empty()) {std::cout << "unable to load image here" << std::endl;return -1;}// transfer image to gray typecv::Mat grayImage;cv::cvtColor(image, grayImage, cv::COLOR_BGR2GRAY);// show original image
#if 1cv::imshow("Original Image", image);
#else// show gray imagecv::imshow("Gray Image", grayImage);
#endif// wait for inputcv::waitKey(0);return 0;
}

4、配置头文件目录

        前面我们安装了opencv,如果需要在工程下面用起来,则需要配置一下头文件目录,

D:\software\opencv\build\include

5、配置lib文件目录

        除了头文件目录之外,还需要配置lib文件目录,

D:\software\opencv\build\x64\vc16\lib\opencv_world480d.lib

6、下载测试图片

        这里面,我们使用到了lena.png图片,因此可以把它下载下来,放到d盘目录。

https://github.com/mikolalysenko/lena/blob/master/lena.png

7、拷贝dll文件

        虽然我们前面编译通过了,但是dll文件还是需要拷贝的,

D:\software\opencv\build\x64\vc16\bin\opencv_world480d.dll

8、另外一个小问题

        实际运行的时候,我们还发现一个问题,这个exe还依赖于一个vc runtime dll文件,那就是vcruntime140_1d.dll。大家可以从这个地方下载,

https://cn.dll-files.com/vcruntime140_1d.dll.html

9、编译测试

        所有条件都准备好了,就可以开始测试了,直接运行后,如果可以看到这样的图片,那代表没什么问题了。想看到灰度图,就把if 1切换成if 0,


http://www.ppmy.cn/news/1330917.html

相关文章

【心得】java从CC1链入门CC链个人笔记

来劲了&#xff0c;感觉离真正的CTF又近了一步。 本文仅从一个萌新的角度去谈&#xff0c;如有纰漏&#xff0c;纯属蒟蒻。 目录 CC链概念 CC链学习前置知识 CC1链 Version1 Version2 Version3 CC链概念 CC链 Commons Collections apache组织发布的开源库 里面主要对…

数据库:逻辑删除|物理删除及适用性

物理删除和逻辑删除是两种不同的记录删除操作方式&#xff0c;它们各自具有一些优劣势&#xff0c;并适用于不同的场景。 物理删除 物理删除的优势&#xff1a; 节省存储空间&#xff1a;物理删除会直接从数据库中删除记录&#xff0c;可以实现即时的存储空间释放&#xff0c…

2024.1.20

今天主要是以复习为主&#xff0c;以前写过的C语言代码和高数&#xff0c;就在后天&#xff0c;紧张刺激的高数考试就来了&#xff0c;还是有点小慌…… #define _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> #i…

多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测

多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入…

解密POM:提升自动化脚本稳定性和开发效率的正确姿势!

Page Objects是selenium的一种测试设计模式&#xff0c;主要将每个页面看作是一个class。class的内容主要包括属性和方法&#xff0c;属性不难理解&#xff0c;就是这个页面中的元素对象&#xff0c;比如输入用户名的输入框&#xff0c;输入登陆密码的输入框、登陆按钮、这个页…

openssl3.2/test/certs - 027 - server intermediate ca: sca-cert

文章目录 openssl3.2/test/certs - 027 - server intermediate ca: sca-cert概述笔记END openssl3.2/test/certs - 027 - server intermediate ca: sca-cert 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 // \file my_openssl_linux_log_doc_027.txt // \note open…

爬楼梯算法

引言 在算法和编程领域&#xff0c;爬楼梯问题是一个著名的示例&#xff0c;用于引入动态规划的概念。这个问题看似简单&#xff0c;但其背后蕴含的思想却非常深刻。本文将详细介绍爬楼梯问题的解决方案&#xff0c;并通过实例代码展示如何应用动态规划解决这一经典问题。 问…

47. 全排列 II - 力扣(LeetCode)

题目描述 给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 输入示例 nums [1,1,2]输出示例 [[1,1,2], [1,2,1], [2,1,1]]解题思路 解题代码 class Solution {List<List<Integer>> result new ArrayList<>();Deq…