【opencv】opencv在windows和linux的应用

简介: 【opencv】opencv在windows和linux的应用

Opencv

opencv是一个开源的图形图像处理工具,具有对图像进行数学建模,对其进行一系列的处理,为图像的识别和训练做准备。

1、使用

(1)在相应的平台用对应的工具编译opencv的源码。

1)linux平台

配置–安装–编译

2)windows平台

CMake

编译会生成的目录包括:库文件、头文件、命令文件、工具文件…

windows 64位-----------------------opencv64.zip

arm-linux------------------------------opencv-3.4.4.arm.tar.bz2

(2)如何在windows的QT中使用opencv

1)解压opencv64.zip到工程源代码目录

2)将opencv的头文件路径、库文件路径、可执行程序路径加入到QT工程中

①在pro文件中添加头文件路径:

INCLUDEPATH += E:\GZ2142\11-Qt\code\s_project\MyWinOpencv\opencv64\include
INCLUDEPATH += E:\GZ2142\11-Qt\code\s_project\MyWinOpencv\opencv64\include\opencv
INCLUDEPATH += E:\GZ2142\11-Qt\code\s_project\MyWinOpencv\opencv64\include\opencv2

②在pro文件中添加库文件路径

LIBS += E:\GZ2142\11-Qt\code\s_project\MyWinOpencv\opencv64\x64\mingw\lib\libopencv*

如下图:

③添加运行时命令的路径

1、直接将可执行程序的路径加入到系统环境变量path中

步骤:【此电脑】-》【属性】-》【高级系统设置】-》【环境变量】-》【新建】

2、只修改本工程的path路径,添加

E:\GZ2142\11-Qt\code\s_project\MyWinOpencv\opencv64\x64\mingw\bin

3)使用opencv显示图片和视频

测试代码:

#include "mywinopencv.h"

#include <QApplication>
#include <opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgcodecs.hpp>

using namespace cv;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

#if 0
    //使用opencv显示一张图片
    Mat myimage = imread("E:/GZ2142/11-Qt/code/s_day05/1.jpg");
    imshow("Image",myimage);
    //等待
    waitKey(10);
#else
    Mat myimage;
    //获取摄像头
    VideoCapture video(0);
    //显示
    while(1){
        //获取一帧
        video>>myimage;
        //显示一帧
        imshow("Video",myimage);
        //延时
        waitKey(1);
    }

#endif

    MyWinOpencv w;
    w.show();
    return a.exec();
}

运行结果:

显示图片:

(3)在arm-linux中使用opencv


1)解压opencv-3.4.4.arm.tar.bz2到Ubuntu的/opt目录下

2)在工程文件中添加头文件和库文件路径

INCLUDEPATH += /opt/opencv/include
INCLUDEPATH += /opt/opencv/include/opencv
INCLUDEPATH += /opt/opencv/include/opencv2

LIBS += -L/opt/opencv/lib -lopencv_calib3d -lopencv_core -lopencv_dnn -lopencv_face \
        -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgcodecs \
        -lopencv_imgproc -lopencv_ml -lopencv_objdetect -lopencv_photo \
        -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videoio \
        -lopencv_video -lopencv_videostab


3)编写代码然后交叉编译,在开发板上运行

#include "myarmopencv.h"

#include <QApplication>
#include <opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgcodecs.hpp>

using namespace cv;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    Mat myimage;

    MyArmOpencv w;
    w.show();
    return a.exec();
}


4)将opencv的所有库文件拷贝到开发板的某个目录,并且设置LD_LIBRARY_PATH环境变量(程序运行时动态库的搜索路径)。



export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/Even/opencv/lib

.

opencv的可执行程序的…/…/lib目录必须放上opencv的库文件


相关文章
|
12天前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
35 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
2月前
|
Ubuntu 安全 Linux
|
12天前
|
自然语言处理 安全 Java
Nexpose 7.0.1 for Linux & Windows - 漏洞扫描
Nexpose 7.0.1 for Linux & Windows - 漏洞扫描
34 6
|
1月前
|
安全 前端开发 Windows
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
本文介绍了 Electron 应用在 Windows 中的更新原理,重点分析了 `NsisUpdater` 类的实现。该类利用 NSIS 脚本,通过初始化、检查更新、下载更新、验证签名和安装更新等步骤,确保应用的更新过程安全可靠。核心功能包括差异下载、签名验证和管理员权限处理,确保更新高效且安全。
36 4
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
|
15天前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
29天前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
56 4
|
1月前
|
缓存 Linux 开发者
Linux内核中的并发控制机制:深入理解与应用####
【10月更文挑战第21天】 本文旨在为读者提供一个全面的指南,探讨Linux操作系统中用于实现多线程和进程间同步的关键技术——并发控制机制。通过剖析互斥锁、自旋锁、读写锁等核心概念及其在实际场景中的应用,本文将帮助开发者更好地理解和运用这些工具来构建高效且稳定的应用程序。 ####
41 5
|
1月前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
2月前
|
机器学习/深度学习 API 计算机视觉
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
34 2
|
2月前
|
机器学习/深度学习 存储 算法
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
49 1