最近项目需要用到图像比对和文字识别,我第一个想到的就是OpenCV,
相信大家也一定听说过它,传言它是一个图像处理和人脸识别的库吧。
它的应用非常广,
除了人脸识别,它还可以做:
美颜:自拍的时候瘦脸、大长腿、给眼睛加副眼镜等
OCR:车牌识别、文字识别、识别名片、发票等
自动驾驶:车道检测、交通标志检测、障碍物检测等
工业领域:产品缺陷检测、火情检测等
医疗领域:病源区域检测、病源周长、面积等,如确定肿瘤的边界和体积
当然还有人工智能领域等。
OpenCV的重要意义在于,它给了计算机一双眼睛!
那么OpenCV有Delphi的控件包吗?
有的,并且是开源的,
控件介绍
在Github上搜索Delphi OpenCV,会出来两个主要的结果,
Star都比较高,
图片
第一个是Delphi-OpenCV,是将OpenCV的头文件翻译成Pas文件,
https://github.com/Laex/Delphi-OpenCV
图片
它支持的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://opencv.org/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做过哪方面应用或者想法呢?
请在下方留言区交流!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。