赞
踩
最近在搞摄像头视频捕获,开始用DirectShow做的,效果是可以的,但是分辨率越高,速度很慢,拖影很严重。没办法最后找Opencv 来试试,听说这个是挺强大的,结果上Opencv官网下载居然不能安装,很郁闷,然后继续找,后来在CSDN上找到了249这个版本,Delphi2010 可以用的,我已经安装上了,过程很曲折,网上也没有具体怎么安装这个控件的文章,因此将个人心德分享一下,希望对Delphi开发的朋友们有用处,讲的不好,别喷我,我只是个菜鸟!!!
下载这个控件249的,本站就有,搜索一下就能找到。Delphi-OpenCV-master.rar 放到自己喜欢的目录解压。
文件目录如图
添加Delphi 路径
重头戏来了:
1:
先打开Delphi-OpenCV-master\source\component\Delphi14\OpenCV140.dpk 文件 啥都不管直接编译 oh!!! no !!!
错误提示能有长江那么长,没事,一个一个来解决
仔细看看错误提示,晕 都是宏编译指令的错误,把错误地方的 {$ENDIF} --->改成 {ifEND} 这种宏编译,我确实没用过,解决办法也是网上收集的方法。不知道啥意思,别喷我。
继续:有这种错误的都改了,改了,再编译,继续改。
改的途中似乎有类似于 System.math 这种的错误 ,别怕,直接把System.math 的 System. 给干掉,在编译,yes 过了
System.math 这种错误好像有两个,还有一个叫啥的,我忘记了,记得把前面部分删了就OK了,这是XE版本单元引用的问题,XE版本的特点。
我感觉这个能用在XE版本上的,没试过,用XE版本的朋友可以试试。
继续编译,遇到了一个函数的错误 函数名字叫啥我也记不清了,只记得这部分代码是改变摄像头分辨率的代码,
代码类似这样的:AMMEdiaType^.lSampleSize := XXXXXXXX((biWidth + 3) and (not(3)))* biHeight * biBitCount shr 3;
把那个XXXXXXXX的函数给删了,这个错误好像是高版本类型的问题,删掉就行。再编译,oh~~~ 成功了
2:关掉上面那个 ,还是保存一下把,因为你改对了,没准下次还用呢,还改一次不是很麻烦。
打开dclCommonOpenCV140.dpk 跟前面一样,直接编译,直接成功了,晕没有这么简单吧?,那安装吧,点击 install 咚 跳出了一个错误,丢失了opencv_core249.dll文件
晕,哪去找这个文件??? bin 目录下有啊,直接复制,到哪里呢??? 如果是64位系统,放SysWOW64 ,32位的,SYSTEM32,但是bin文件夹里面有两个 一个
win64,一个win32 ,到底复制哪个? 你别管,直接复制win32的,我是win7 64 位的,复制bin/win32的到 SysWOW64 目录下,直接编译 咚 。。。
又来msvcp120d.dll 文件找不到,没事,再去bin 目录下找,找啊找啊,没有。傻了,怎么办 网上找,一搜就找到了,复制到SysWOW64 目录,再编译 还是有错误的,总共要复制进去的文件有一下如图所示的
有两个文件需要在网上找,剩下的bin目录里面都有,我当时是想把所有的文件都搞进去,但又怕又把系统给搞崩溃了,所以就一个一个来,也就复制这么几次,就可以了。
复制完后编译,连警告都没有的,直接安装,咚。。。 这回是控件安装的提示了,点确定就安装上了,
3:
打开dclVCLOpenCV140.dpk文件,直接编译,没有错误的,安装也没有错误的,直接安装成功了。打开Delphi
这就是控件了
好了,就这么多了,希望对大家有帮助哈,第一次写博客,写不好,希望大家别喷我
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。