【Delphi】OpenCV 实战(一):OpenCV简介及开发环境配置

本文介绍了如何在Delphi中使用OpenCV,重点讲述了OpenCV 4.7的Delphi开发环境配置,包括环境变量设置、Demo程序的编译配置和运行。通过Delphi-OpenCV-Class库,开发者可以顺利在Delphi中利用OpenCV的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、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 的安装目录。

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

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

序号文件说明
1opencv_videoio_ffmpeg470_64.dll Release 使用
2opencv_videoio_msmf470_64.dllRelease 使用
3opencv_world470.dllRelease 使用
4opencv_videoio_msmf470_64d.dllDebug 使用
5opencv_world470d.dllDebug 使用
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 ,将摄像头左上角进行了掩码虚化。

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

由于文件大小超过csdn限制的60M,所以分割成2个文件了,请注意下载。 Delphi-OpenCV (master) OpenCV version - 2.4.8 Development environment - Delphi XE2-XE5 Contributors: Laentir Valetov email: laex@bk.ru Mikhail Grigorev email: sleuthhound@gmail.com How to install: 1.Download the archive Delphi-OpenCV-master.zip 2.Unzip it to a convenient directory, thus get the following directory structure <Directory, such as 'C:\OpenCV\' - <PROJECT_ROOT>> <bin> <component> <include> <opencv_classes> <samples> 3.Add the search path for the modules of the project in Delphi IDE (Tools-Options-Delphi Options-Library-Library path) <PROJECT_ROOT>\Include <PROJECT_ROOT>\Include\core <PROJECT_ROOT>\Include\highgui <PROJECT_ROOT>\Include\imgproc <PROJECT_ROOT>\Include\legacy <PROJECT_ROOT>\Include\nonfree <PROJECT_ROOT>\Include\objdetect <PROJECT_ROOT>\Include\calib3d <PROJECT_ROOT>\Include\contrib <PROJECT_ROOT>\Include\video <PROJECT_ROOT>\Include\ml <PROJECT_ROOT>\Include\stitching <PROJECT_ROOT>\component where <PROJECT_ROOT> directory, which was unzipped project. Additionally, you can specify the path to the library header files FFMPEG <PROJECT_ROOT>\Include\ffmpeg <PROJECT_ROOT>\Include\ffmpeg\ctypes <PROJECT_ROOT>\Include\ffmpeg\libavcodec <PROJECT_ROOT>\Include\ffmpeg\libavfilter <PROJECT_ROOT>\Include\ffmpeg\libavformat <PROJECT_ROOT>\Include\ffmpeg\libavutil <PROJECT_ROOT>\Include\ffmpeg\libswscale Examples of using FFMPEG library header files are in the <PROJECT_ROOT>\Delphi-OpenCV-master\Include\ffmpeg\examples 4.Open in Delphi IDE and compile: Examples of the use of certain functions and procedures <PROJECT_ROOT>\samples\LibDemo.groupproj Examples of the use of video processing algorithms <PROJECT_ROOT>\samples\MultiDemo.groupproj Examples of the use of video processing algorithms using VCL.Forms <PROJECT_ROOT>\samples\VCLDemo.groupproj Examples of use of components. To install the components, open and install <PROJECT_ROOT>\Include\component\OpenCV.dpk <PROJECT_ROOT>\samples\ComponentDemo.groupproj
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海纳老吴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值