IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> opencv with C++ -> 正文阅读

[人工智能]opencv with C++

目录

OpenCV介绍

C++版本的 OpenCV库安装

OpenCV库的使用示例

OpenCV库里的人体检测功能


OpenCV介绍

OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉机器学习软件库,可以运行在LinuxWindowsAndroidMac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV用C++语言编写,它具有C ++,PythonJavaMATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

C++版本的 OpenCV库安装

下载release版本:Releases - OpenCV

从git仓库下载:git clone https://github.com/opencv/opencv.git

本文档下载的是opencv 4.5.5 版本。

进入opencv目录进行编译安装 ,

OPENCV_GENERATE_PKGCONFIG=ON是生成.pc文件,给pkg-config使用。

$ cd opencv
$ mkdir build
$ cmake -DOPENCV_GENERATE_PKGCONFIG=ON ..
$ make
$ make install

opencv 库安装所在目录

库文件:/usr/lib/x86_64-linux-gnu/

头文件:/usr/local/include/opencv4/

OpenCV库的使用示例

根据OpenCV with C++ — OpenCV Guide documentation里的示例显示视频

示例如下:

$ ls
Makefile  opencv_test.cpp  versal.mp4

opencv_test.cpp 如下:

#include <stdio.h>
#include <opencv4/opencv2/opencv.hpp>

int main(int argc, char** argv )
{

    cv::Mat frame;  // variable frame of datatype Matrix
    cv::VideoCapture capture;
    capture.open("versal.mp4");

    for(;;){
        capture>>frame;
        if(frame.empty())
            break;
        cv::imshow("Window", frame);

        if(cv::waitKey(30)>=0)
                break;
    }
    return 0;
}

Makefile:

opencv_test:
	g++ opencv_test.cpp -o opencv_test `pkg-config --libs opencv4` -I/usr/local/include/opencv4/

clean:
	rm -rf opencv_test

编译并运行:

$ make
g++ opencv_test.cpp -o opencv_test `pkg-config --libs opencv4` -I/usr/local/include/opencv4/
$ ls
Makefile  opencv_test  opencv_test.cpp  versal.mp4
$ ./opencv_test

遇到错误:

OpenCV(4.5.5) /home/wq/Project/opencv-4.5.5/modules/highgui/src/window.cpp:1268: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'

解决办法:

$ sudo apt-get install libgtk2.0-dev

随后执行opecv_test成功,打开versal.mp4播放界面。

OpenCV库里的人体检测功能

示例代码如下:

$ ls
Makefile  opencv_test.cpp  versal.mp4

?opencv_test.cpp 如下:

#include <stdio.h>
#include <opencv4/opencv2/opencv.hpp>

int main(int argc, char** argv )
{
    int thickness = 2;

    cv::Mat frame;
    cv::VideoCapture capture;

    cv::HOGDescriptor hog;
    std::vector<cv::Rect> foundLocations;

    cv::Point p1(0, 0);
    cv::Point p2(0, 0);

    capture.open("versal.mp4");

    for(;;)
    {
        capture>>frame;
        if(frame.empty())
            break;

        hog.setSVMDetector(hog.getDefaultPeopleDetector());

        hog.detectMultiScale(frame, foundLocations);

        p1.x = cvRound(foundLocations[0].x);
        p1.y = cvRound(foundLocations[0].y);
        p2.x = cvRound(foundLocations[0].x+foundLocations[0].width);
        p2.y = cvRound(foundLocations[0].y+foundLocations[0].height);

        // Drawing the Rectangle
        cv::rectangle(frame, p1, p2, cv::Scalar(255, 0, 0), thickness, cv::LINE_8);

        cv::imshow("Window", frame);

        if(cv::waitKey(30)>=0)
                break;
    }

    return 0;
}

Makefile 如下:

opencv_test:
	g++ opencv_test.cpp -o opencv_test `pkg-config --libs opencv4` -I/usr/local/include/opencv4/

clean:
	rm -rf opencv_test

编译并运行:

$ make
g++ opencv_test.cpp -o opencv_test `pkg-config --libs opencv4` -I/usr/local/include/opencv4/
$ ./opencv_test?

结果实现 能成功检测到人体,并用蓝色长框把人体框起来。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章           查看所有文章
加:2022-05-27 17:19:37  更:2022-05-27 17:20:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:42:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码