vfp 成功调用opencv 计算机视觉及机器学习
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了丰富的算法和工具,主要用于图像和视频的处理、分析,以及实现人脸识别、物体检测、3D重建等多种视觉应用。要是能被vfp调用,那不是如虎添翼了???
于是,我下载了opencv的源代码,由于官方不提供32位的dll,只提供64位的dll,所以我不得不自己重新编译。又因为opencv是C++ 编写的,编译的dll不能被vfp直接调用,所以只好求助deepseek,让它教我做一个中间层opencv4vfp.dll,花了我一个星期啊。。。
好在天无绝人之路,总算搞通了,迫不及待测试了一下,成功了。
下面是vfp调用代码:
程序代码:
CLEAR
DECLARE STRING GetCV4VfpVersion IN opencv4vfp.dll
DECLARE INTEGER CV_LoadImage IN opencv4vfp.dll STRING filename
DECLARE ReleaseImage IN opencv4vfp.dll INTEGER handle
DECLARE INTEGER GetImageWidth IN opencv4vfp.dll INTEGER handle
DECLARE INTEGER GetImageHeight IN opencv4vfp.dll INTEGER handle
DECLARE INTEGER ConvertToGray IN opencv4vfp.dll INTEGER handle
DECLARE INTEGER SaveImage IN opencv4vfp.dll INTEGER handle, STRING filename
DECLARE HelloWorld IN opencv4vfp.dll string
Helloworld("Sam Jiang")
? GetCV4VfpVersion()
lnHandle = CV_LoadImage(GETFILE("jpg,bmp"))
IF lnHandle > 0
? "宽度:", GetImageWidth(lnHandle)
? "高度:", GetImageHeight(lnHandle)
lnGray = ConvertToGray(lnHandle)
IF lnGray > 0
SaveImage(lnGray, "C:\test_gray.jpg")
ReleaseImage(lnGray)
ENDIF
ReleaseImage(lnHandle)
ENDIF
效果图如下:










