目录

一、OpenCV 功能模块

二、Delphi 中使用OpenCV

三、OpenCV 4.7 Delphi开发环境配置

1. 环境配置

2. OpenCV 中Demo程序的编译配置

3. 运行 Demo (OpenCV for Delphi)


        OpenCV 是世界上最大的计算机视觉库。
        它是开源的,包含 2500 多种算法,由非营利性开源视觉基金会运营
。        

        关于OpenCV,熟悉python或者C++语言的可能更容易理解,因为官方就直接支持python和C++语言,但是如果Delphi语言想使用,可就不是那么方便了。

        OpenCV名气有多大我就不多说了,OpenCV(开源计算机视觉库:http://opencv.org)是一个开源库,其中包含数百种计算机视觉算法。该算法几乎涵盖了计算机视觉处理的方方面面。

        从本系列文章开始,我打算介绍下Delphi语言如何使用OpenCV。

一、OpenCV 功能模块

        OpenCV 采用模块化结构,这意味着软件包包含多个共享库或静态库。具体包括以下模块:

  • 核心功能(core)--定义基本数据结构的紧凑型模块,包括密集多维数组 Mat 和所有其他模块使用的基本功能。
  • 图像处理(imgproc)--图像处理模块,包括线性和非线性图像过滤、几何图像变换(调整大小、仿射和透视扭曲、基于通用表的重映射)、色彩空间转换、直方图等。
  • 视频分析(视频)--视频分析模块,包括运动估计、背景减除和物体跟踪算法。
  • 相机校准和三维重建(calib3d)--基本的多视角几何算法、单相机和立体相机校准、物体姿态估计、立体对应算法和三维重建元素。
  • 二维特征框架(features2d) - 突出特征检测器、描述符和描述符匹配器。
  • 对象检测(objdetect)--检测对象和预定义类别的实例(例如,人脸、眼睛、杯子、人、汽车等)。
  • 高级图形用户界面 (highgui) - 简单用户界面功能的易用界面。
  • 视频 I/O (videoio) - 视频捕捉和视频编解码器的易用界面。

        ... 其他一些辅助模块,如 FLANN 和 Google 测试包装器、Python 绑定等。

二、Delphi 中使用OpenCV

        众所周知的原因,Delphi使用很多开源库都非常困难,包括使用腾讯、阿里云等等平台的API都比较困难,因为这些平台等都不提供Delphi相关的Demo,那么只能自己根据C或者Java的Demo来进行相关翻译。对于OpenCV,因为其官方提供的是C++的开源代码,Delphi想使用,就只能是用C++的编译器编译成DLL(Windows上,事实上OpenCV也是支持Linux和MAC等),好在官方提供了编译好的DLL共类似Delphi语言使用。

        目前(2024-05-07)OpenCV的版本是4.9,理论上讲,使用官方提供的最新的DLL是没有问题的,可是遗憾的是,由于OpenCV的库实在太大,函数实在太多,而且是用C++语言写的,同时很多数据结构原生Delphi中并没有,这就必须要有相关的搭桥封装库来提供转接,目前版本比较新而且功能相对完善的就是 Delphi-OpenCV-Class 本文也就是基于这个封装来介绍。Delphi-OpenCV-Class  是支持到OpenCV 4.7。

三、OpenCV 4.7 Delphi开发环境配置

        使用 Delphi-OpenCV-Class 首先需要配置好开发环境,然后才能进行开发。

  1. 支持Delphi版本:实际上D12也可以使用,本系列文章使用的是D12
  2. 第一步:下载  Delphi-OpenCV-Class 下载完后进行安装,如果网络不好,请从这里下载
  3. 第二步,下载 OpenCV 4.70 下载完后进行安装,如果网络不好, 请从这里下载

        安装好 Delphi-OpenCV-Class 后,将会在安装目录的<project>\bin\目录下找到如下文件,注意这里的 <project表示的是  Delphi-OpenCV-Class 的安装目录。

序号 文件 说明
1 opencv_delphi470.dll Release 使用
2 opencv_delphi470d.dll  Debug使用

        安装好  OpenCV 4.70 后,将会在<opencv>\build\x64\vc16\bin\目录下找到如下文件, 注意这里的 <project表示的是   OpenCV 4.70  的安装目录。

序号 文件 说明
1 opencv_videoio_ffmpeg470_64.dll  Release 使用
2 opencv_videoio_msmf470_64.dll Release 使用
3 opencv_world470.dll Release 使用
4 opencv_videoio_msmf470_64d.dll Debug 使用
5 opencv_world470d.dll Debug 使用
1. 环境配置

        假如  Delphi-OpenCV-Class 安装在 D:\Delphi-OpenCV-Class-main,那么需要在Delphi 的IDE 中设置好库路径:

编译好程序后,需要将以上所有的DLL文件拷贝执行文件的目录,就可以正常执行。

2. OpenCV 中Demo程序的编译配置

        加入OpenCV安装在 D:\OpenCV470\opencv 目录下。        

        在D:\Delphi-OpenCV-Class-main\source目录下找到cv.resource.pas这个文件,然后修改其OpenCVRootPath 常量指定到OpenCV的安装目录。

interface

const

  OpenCVRootPath = 'D:\OpenCV470\opencv\';  //记得最后一个斜杠不要忘记
  OpenCVData     = OpenCVRootPath + 'sources\samples\data\';
  OprnCVHaar     = OpenCVRootPath + 'sources\data\haarcascades\';

3. 运行 Demo (OpenCV for Delphi)

        打开: D:\Delphi-OpenCV-Class-main\samples 目录下的 Samples.groupproj 这个文件即可。

点击编译运行就可以使用OpenCV了。下面是运行videpcapture_basic.exe 这个Demo,原生Demo只是打开摄像头,我修改了Demo ,将摄像头左上角进行了掩码虚化。

以上为原生打开摄像头视频。下面为实时对视频左上角进行虚化。

Logo

一站式 AI 云服务平台

更多推荐