最近项目需要用到图像比对和文字识别,我第一个想到的就是OpenCV, 相信大家也一定听说过它,传言它是一个图像处理和人脸识别的库吧。 它的应用非常广, 除了人脸识别,它还可以做: 美颜:自拍的时候瘦脸、大长腿、给眼睛加副眼镜等 OCR:车牌识别、文字识别、识别名片、发票等 自动驾驶:车道检测、交通标志检测、障碍物检测等 工业领域:产品缺陷检测、火情检测等 医疗领域:病源区域检测、病源周长、面积等,如确定肿瘤的边界和体积 当然还有人工智能领域等。 OpenCV的重要意义在于,它给了计算机一双眼睛! 那么OpenCV有Delphi的控件包吗? 有的,并且是开源的, 控件介绍 在Github上搜索Delphi OpenCV,会出来两个主要的结果, Star都比较高, 第一个是Delphi-OpenCV,是将OpenCV的头文件翻译成Pas文件, 它支持的OpenCV版本是2.4.13,是一个比较低的版本,目前OpenCV的新版是4.10, 所以我选择使用第二个Delphi-OpenCV-Class项目, 它支持4.10: https://github.com/Laex/Delphi-OpenCV-Class 支持的Delphi版本为Delphi 10.4~12。 这两个项目都是同一个作者:Laentir Valeov, 俄罗斯人的Delphi牛人真多! 我们把它下载下来: Delphi-OpenCV-Class控件安装: 控件包下载下来之后,先安装, 打开Delphi-OpenCV-Class-main\packages\Delphi 12 Athens\目录中的CVClassGroup.groupproj 然后再配置Delphi的Library Path: 把控件源码目录添加进去: 还需要把OpenCV相关的dll放在工程生成目录: 下载OpenCV 4.10,地址: https:///releases/ 解压之后, 将opencv\build\x64\vc16\bin\中的dll 复制到Delphi-OpenCV-Class-main\bin\ 再将Delphi-OpenCV-Class-main\redist\opencv_delphi4100\中的dll 拷到Delphi-OpenCV-Class-main\bin\ github上下载Delphi-OpenCV项目,把里面的VC redist的dll也拷到Delphi-OpenCV-Class-main\bin\ 然后打开Delphi-OpenCV-Class-main\samples\Samples.groupproj就可以跑示例了: 但是我这里Debug模式运行的时候还是少DLL,Release模式没有提示: 我不清楚是不是我系统的问题, 一开始以为是我的VC Redist版本太低了, 又下载了很多高版本的, 还是不行,最后在谷歌下载了这个vcruntime140_1d.dll就可以了。 因为示例中很多图片都是直接使用OpenCV中的资源: 所以还要在cv.resource单元中的OpenCVRootPath值修改为你下载的opencv的资源目录, 第一个示例AddingImages是将两张图片以输入的透明度融合: 至此,OpenCV-Delphi-Class才算安装完毕! 还需要注意: 示例都是设置成Win 64位编译,不要有中文目录,不然断点会失效,不能调试! OpenCV-Delphi-Class基本用法: OpenCV的图片是一个多维数组, 在Delphi控件中这个类型被定义为TMat, 基本的方法如下: imread方法用于读取图片 imshow方法用于显示图片 waitkey方法用于等待用户输入 我们来简单试一下: 先建一个控制台工程, 因为我们的dll都是64位的, 所以项目要添加Win 64平台: 再设置工程输出目录指定到上面我们放好dll的目录: 代码如下: 运行: 按下任意键,程序就会退出了。 当然了,这仅仅只是个开始, OpenCV还有图像二值化、滤波、边缘轮廓检测、图片匹配、视频处理、人脸识别等方法, 后续我会出一些很相关的应用! 我也认识有Delphier前辈用OpenCV做医疗图像处理、验证码识别、物体检测等, 相信Delphi与OpenCV+AI互相配合也是未来的一片蓝海! 那么你有用OpenCV做过哪方面应用或者想法呢? 请在下方留言区交流! |
|