opencv3.opencv3.0附加依赖项项怎么配置

在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
标签:至少1个,最多5个
由于作业需求需要使用sift算子作图像拼接,本打算用CImg自己写一个sift,但由于参考robwhess的实现不仅代码实际上与robwhess的很相似(照着人家的轮子造轮子真是没意义),而且还有很多问题要改,处于时间考虑就暂时用robwhess的OpenCV版本的sift算子。由于第一次使用vs+opencv所以顺便记录一下配置过程,对opencv配置不感兴趣的可以直接跳过。关于sift算法的讲解会在CImg版本完善后一起放出,目前告诉你sift用于提取出尺度无关、光照无关、具有旋转不变性的局部特征点。
Visual Studio 2017+OpenCV-3.2.0配置
由于重装过系统所以重新下载的Visual Studio,所以VS更新到了2017版本,对OpenCV的2.x版本都不再支持,被迫使用了3.2.0的最新版本(最大的坏处在于3.x中nonfree的模块被移除了)。
下载这两个东西的过程就不必再提了,OpenCV记得下载安装文件而不是压缩文件,压缩文件中没有build文件夹。
Windows环境变量配置
将${你的OpenCV解压路径}\opencv\build\x64\vc14\bin加入到系统变量Path中
Visual Studio配置
打开你需要使用OpenCV的项目,右击项目选择属性页打开。在“VC++目录”中的“包含目录”一栏加入${你的OpenCV解压路径}\opencv\build\${你的OpenCV解压路径}\opencv\build\include\${你的OpenCV解压路径}\opencv\build\include\opencv2。
在"VC++目录"的“库目录”一栏加入${你的OpenCV解压路径}\opencv\build\x64\vc14\lib。
在“链接器”-&“输入”的“附加依赖项”栏中加入之前库目录添加的那个lib文件夹下的两个lib文件,这里不需要加路径直接写文件名即可(OpenCV3.x省了很多lib,如果使用2.x这里有貌似38个lib要加)。到这里OpenCV的配置就完成了,可以上网随便找一个简单例子跑一下看看,最简单的比如读取一张图片并显示5000ms。
robwhess-opensift配置
这里提一下,实际上OpenCV也是提供了SIFT和SURF算子的,但是在3.x的版本中这一块以及一些其他功能被移了出去,如果要用需要去github额外下载opencv_contrib,下载下来后用cmake把opencv下的sources重新编译一下再把opencv_contrib中的modules编译进去,这一块网上自己找教程吧,因为我一开始想这么做但是失败了。如果是最新的robwhess的github上的sift,里面有用到linux系统的库函数,我懒得去研究windwos下怎么代替,所以找了旧版本的sift,也是在别人那里看到的,链接。把这里的文件下载下来直接加到自己的项目里就好,其中所有的opencv头文件在原代码里都是直接include实际上需要修改成&opencv\xxx&,然后运行一下看一看有什么问题看着提示改,这一块我怀疑每个人遇到的可能会不一样,我就提一下我去改动的地方。
关于cstdlib的noexcept的报错
robwhess是用C实现的sift,因为我打算用c++,所以要把所有.c文件改成.cpp文件
c里void到其他类型的指针转换是不用显示声明的,但c++不行,所以所有calloc或malloc要在函数前面加上强制指针转换
CV_RGB和CvScalar的类型转换问题
本来CV_RGB是定义的宏实际调用的cvScalar的构造函数,所以你可以直接改成使用cvScalar的构造函数,同样有两个宏定义为CV_RGB的也可以直接改为cvScalar,不过要注意参数顺序是反过来的,CV_RGB的参数是r、g、b三个通道,但cvScalar是b、g、r
cvLine和cvEllipse函数未定义
OpenCV的3.x里似乎这两个画图的函数不在cxcore里了,include一下cv.h就可以正常使用这两个函数
cvRound,cvFloor,cvCeil宏无法找到
直接使用c++自己的round,floor,ceil函数替代即可
sift的使用
robwhess使用feature结构体存储的特征点,对于OpenCV的C版本图像的数据格式是IplImage,初始化图像以及一个feature的指针,调用sift_features()方法传入这两个数据,会返回特征点个数,使用imgfeatures.h中的draw_features、draw_oxfd_features、draw_lowe_features方法可以在图像中标注特征点,对于3.x版本使用cvarrToMat函数可以将IplImage数据格式的图像转为Mat格式,后者是C++中OpenCV存储图像的常见数据格式。draw_features的效果图如下
1 收藏&&|&&1
你可能感兴趣的文章
5 收藏,587
2 收藏,636
本作品采用署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
非常感谢老哥。也正在弄这个,opencv_contrib照着它的README做编译不进去愁苦了好久,也打算用robwhess的库了。
非常感谢老哥。也正在弄这个,opencv_contrib照着它的README做编译不进去愁苦了好久,也打算用robwhess的库了。
同学你好, 我看到你写过基于SIFT做图像拼接的事情,我目前在做遥感图像的课题,想请教一下,不知道是否方便?
可以的话请邮件联系下
同学你好, 我看到你写过基于SIFT做图像拼接的事情,我目前在做遥感图像的课题,想请教一下,不知道是否方便?
可以的话请邮件联系下
因为是几个月前做的而且结课后没有再接触图像领域工作,所以细节上已经记不得了。当时最后实现的图像拼接代码在,效果不是很好且结果有随机性(一个可以接受的结果可能需要运行五六次才能出来),有需要的话可以参考一下(当时用VS写的注释后来打开都是乱码就把注释删了)。
因为是几个月前做的而且结课后没有再接触图像领域工作,所以细节上已经记不得了。当时最后实现的图像拼接代码在/singleboat/SYSU_SE_ComputerVision/blob/master/stitch.cpp,效果不是很好且结果有随机性(一个可以接受的结果可能需要运行五六次才能出来),有需要的话可以参考一下(当时用VS写的注释后来打开都是乱码就把注释删了)。
分享到微博?
我要该,理由是:VS2013+openCV3.0无脑配置方法+解决警告问题【windows平台】
时间: 23:31:47
&&&& 阅读:40309
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&VS2013+openCV3.0无脑配置方法+解决警告问题【windows平台】
本文介绍如何配置VS+openCV环境,并解决&opencv 3.0 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失的&警告
参考博客:
/blog/2014-02-opencv_configuration_in_vs.html
下载&openCV
最新版本,本文是 Opencv 3.00。双击后会出现解压提示,实际上就是&安装&了,路径填写为 D:/Program Files,然后确定。
D:/Program Files 可以为任意自己希望opencv安装的路径,解压完成后,会在你所填目录中新增一个 opencv文件夹,
里面就是opencv的所有内容了。例如按照我的路径,解压完成后Opencv就在 D:/Program Files/opencv 里面了。
配置环境变量
在系统变量里面新建变量,名为 OPENCV ,值为自己解压opencv路径下的build路径,如 D:\Program Files\opencv\build。
这一步是方便以后如果opencv路径改变了,只需要修改此变量就可以了,而不必做大范围修改。
在系统变量里面编辑 Path 变量,在末尾添加 ;%OPENCV%\x86\vc12\bin 。
x86和x64分别表示32bit和64bit的VS工程,根据自己的工程来修改,否则虽编译成功但会运行错 误;vc10, vc11, vc12 分别表示VS2010, VS2012, VS2013的Visual Studio使用的编译器版本,根据自己的VS版本来填写正确的编译器版本号。
环境变量设置好后最好注销(重启)一下系统,可能有的系统环境变量不会立即生效,而导致一系列路径相关的问题。
编写Opencv的VS工程容属性表
在opencv根目录(例如 D:\Program Files\opencv)下新建VS属性表文件 opencv300.props,或者直接下载我的
属性表文件。
opencv300.props 文件内容如下:
&?xml version="1.0" encoding="utf-8"?&
&Project ToolsVersion="4.0" xmlns="/developer/msbuild/2003"&
& &ImportGroup Label="PropertySheets" /&
& &PropertyGroup Label="UserMacros" /&
& &PropertyGroup&
&&& &IncludePath&$(OPENCV)\$(IncludePath)&/IncludePath&
&&& &LibraryPath Condition="‘$(Platform)‘==‘Win32‘"&$(OPENCV)\x86\vc12\$(OPENCV)\x86\vc12\$(LibraryPath)&/LibraryPath&
&&& &LibraryPath Condition="‘$(Platform)‘==‘X64‘"&$(OPENCV)\x64\vc12\$(OPENCV)\x64\vc12\$(LibraryPath)&/LibraryPath&
& &/PropertyGroup&
& &ItemDefinitionGroup&
&&& &Link Condition="‘$(Configuration)‘==‘Debug‘"&
&&&&& &AdditionalDependencies&opencv_ts300d.opencv_world300d.IlmImfd.libjasperd.libjpegd.libpngd.libtiffd.libwebpd.opencv_calib3d300d.opencv_core300d.opencv_features2d300d.opencv_flann300d.opencv_highgui300d.opencv_imgcodecs300d.opencv_imgproc300d.opencv_ml300d.opencv_objdetect300d.opencv_photo300d.opencv_shape300d.opencv_stitching300d.opencv_superres300d.opencv_ts300d.opencv_video300d.opencv_videoio300d.opencv_videostab300d.zlibd.%(AdditionalDependencies)
&&&&& &/AdditionalDependencies&
&&& &/Link&
&&& &Link Condition="‘$(Configuration)‘==‘Release‘"&
&&&&& &AdditionalDependencies&opencv_ts300.opencv_world300.IlmImf.ippicvmt.libjasper.libjpeg.libpng.libtiff.libwebp.opencv_calib3d300.opencv_core300.opencv_features2d300.opencv_flann300.opencv_highgui300.opencv_imgcodecs300.opencv_imgproc300.opencv_ml300.opencv_objdetect300.opencv_photo300.opencv_shape300.opencv_stitching300.opencv_superres300.opencv_ts300.opencv_video300.opencv_videoio300.opencv_videostab300.zlib.%(AdditionalDependencies)
&&&&& &/AdditionalDependencies&
&&& &/Link&
& &/ItemDefinitionGroup&
& &ItemGroup /&
&/Project&
这份属性表为opencv3.0的VS2013工程属性表,兼容64位和32位平台,兼容Debug和Release配置。详细解释看后文,后面在VS工程中配置Opencv只需要导入这份属性表就可以了。
新建VS测试工程
文件 -& 新建 -& 项目 -& Visual C++ -& Win32 控制台应用程序(输入名称test)
确定 -& 下一步 -& 附加选项选&空项目& -& 完成
VS内配置Opencv
这里用VS属性表的方式将Opencv配进工程,每次只需要添加属性表即可完成配置,比手工界面配置方便很多。
属性管理器 -& 右键 &test&(工程名) -& 添加现有属性表
找到之前新建或者下载的属性表( D:\Program Files\opencv\opencv300.props ),添加进工程
解决方案资源管理器 -& 源文件(右键)-& 添加 -& 新建项
Visual C++ -& C++文件:输入名称test点添加
粘贴下面的代码,保存:
#include &opencv2\opencv.hpp&
#include &iostream&
#include &string&
using namespace cv;
using namespace std;
int main()
Mat img = imread("pp.jpg");
if (img.empty())
cout && "error";
return -1;
imshow("pp的靓照", img);
waitKey();
把自己的靓照改名为pp.jpg,然后放到工程项目的test文件夹里面(是里面那个test文件夹)
按F5调试程序,如果你的图片出来了就OK了。
&&&编译的时候会出现&opencv 3.0 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失的&的警告。
解决办法就是找到警告的文件,然后用notepad++转码为ANSI
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:/coderbean/p/4489103.html
你好!在添加属性表时提示:属性表无效,或者添加它会导致循环继承期中一个选定的属性表
你好,我按照你的步骤出现了一个问题,想请教一下,问题是VS内配置Opencv这里用VS属性表的方式将Opencv配进工程,每次只需要添加属性表即可完成配置,比手工界面配置方便很多。属性管理器&-&&右键&“test”(工程名)&-&&添加现有属性表这一步我出现了错误错误是:cannot&add&property&sheet&‘E:\GPGPU-SIM\OpenCV\opencv\opencv300.props‘&as&it&is&either&aninvalid&property&sheet,or&adding&it&would&cause&a&circular&inheritance&with&one&of&the&selected&property&heets求如何解决呢?
你好,我按照你的步骤出现了一个问题,想请教一下,问题是VS内配置Opencv这里用VS属性表的方式将Opencv配进工程,每次只需要添加属性表即可完成配置,比手工界面配置方便很多。属性管理器&-&&右键&“test”(工程名)&-&&添加现有属性表这一步我出现了错误错误是:cannot&add&property&sheet&‘E:\GPGPU-SIM\OpenCV\opencv\opencv300.props‘&as&it&is&either&aninvalid&property&sheet,or&adding&it&would&cause&a&circular&inheritance&with&one&of&the&selected&property&heets求如何解决呢?
如有任何答案,可以发邮件到我的邮箱:wang010366@
你好,我按照你的步骤出现了一个问题,想请教一下,问题是VS内配置Opencv这里用VS属性表的方式将Opencv配进工程,每次只需要添加属性表即可完成配置,比手工界面配置方便很多。属性管理器&-&&右键&“test”(工程名)&-&&添加现有属性表这一步我出现了错误错误是:cannot&add&property&sheet&‘E:\GPGPU-SIM\OpenCV\opencv\opencv300.props‘&as&it&is&either&aninvalid&property&sheet,or&adding&it&would&cause&a&circular&inheritance&with&one&of&the&selected&property&heets求如何解决呢?
我也出现了同样的错误,怎么解决的呀??
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!openCV3.2.0配置VS2013(自用)+opencv_contrib安装 - CSDN博客
openCV3.2.0配置VS2013(自用)+opencv_contrib安装
1.openCV3.2.0 配置
1.1 配置环境变量
添加路径D:\openCV\opencv\build\x64\vc14\bin (这是我的存放目录)
1.2 换成X64平台
启动VS2013,生成win32控制台应用程序;
属性管理器中,创建一个x64的,如下:
1.3 属性中的VC++目录
在包含目录中添加以下目录(根据自己存放路径来):
&&&&&&&&&&&&& D:...\opencv\build\include
&&&&&&&&&&&&& D:....\opencv\build\include\opencv
&&&&&&&&&&&&& D:.....\opencv\build\include\opencv2
在库目录中添加:
&&&&&&&&&&&&& D:\opencv\build\x64\vc14\lib
添加依赖项:
好了,大功告成,接下来是测试代码:
#include &opencv2/core/core.hpp&
#include &opencv2/highgui/highgui.hpp&
#include &iostream&
int main(int argc, char** argv)
Mat img = imread(&D:\\VS Project\\Test\\Debug\\1.jpg&);
if (img.empty())
std::cout && &Shit!& &&
system(&pause&);
return -1;
imshow(&image&, img);
waitKey();
ps:如果不成功,重启电脑。。。配置环境变量后有的重启才会有作用。。。。。
2.opencv_contrib的配置
因为opencv3.0以后的版本默认安装中没有加入SIFT、SURF等点特征检测,所以需要手动添加这个配置
用cmake配置的链接请参考:
VC++目录--&包含目录,添加:
D:\opencv3\opencv\mybuild\install\include
VC++目录--&库目录,添加:
D:\opencv3\opencv\mybuild\install\x64\vc12\lib
1.4 在链接器的“输入”选项中添加附加依赖项
&&&&&&&&&&& (如果是debug版本,在.lib前面加上d就ok)
opencv_aruco320.lib
opencv_bgsegm320.lib
opencv_bioinspired320.lib
opencv_calib3d320.lib
opencv_ccalib320.lib
opencv_core320.lib
opencv_datasets320.lib
opencv_dnn320.lib
opencv_dpm320.lib
opencv_face320.lib
opencv_features2d320.lib
opencv_flann320.lib
opencv_fuzzy320.lib
opencv_highgui320.lib
opencv_imgcodecs320.lib
opencv_imgproc320.lib
opencv_line_descriptor320.lib
opencv_ml320.lib
opencv_objdetect320.lib
opencv_optflow320.lib
opencv_phase_unwrapping320.lib
opencv_photo320.lib
opencv_plot320.lib
opencv_reg320.lib
opencv_rgbd320.lib
opencv_saliency320.lib
opencv_shape320.lib
opencv_stereo320.lib
opencv_stitching320.lib
opencv_structured_light320.lib
opencv_superres320.lib
opencv_surface_matching320.lib
opencv_text320.lib
opencv_tracking320.lib
opencv_video320.lib
opencv_videoio320.lib
opencv_videostab320.lib
opencv_xfeatures2d320.lib
opencv_ximgproc320.lib
opencv_xobjdetect320.lib
opencv_xobjdetect320.lib
修改环境变量(同上)
&&&& 如果你是新人,接下来的很重要!!!(我个人在配置时出现的几个大坑)
&&&&&&&&&&&&&&&&&&&&&&& 1.如果有可能,最好自己cmake下,这样error才会少。。。下载别人的文件总会出现这样那样的错误,还有第一次cmake时候会自动下载一些文件,只想说,超慢的。。。官网不能优化下么。。。。。里面有个什么ippicv_windows_的,如果实在下载不下来,就手动去网上下载,亲测可行,最好等报错了在拷贝过去,不然好像有时候文件夹上的码会改变,然后后期容易报错。。。。大神如果有更好的办法可以留言,我随时更正
&&&&&&&&&&&&&&&&&&&&&&& 2.openCV要和Contrib的版本一样,不然cmake时候会报错。。。当编译了1个多小时后,突然发现报错了,你会想屎的~~T.T
&&&&&&&&&&&&&&&&&&&&&&& 3.如果你用到了cuda,那么请记得,一定要自己cmake了,就算你拷贝的别人的配置文件,也会因为cuda的版本不一样而导致编译程序报错
本文已收录于以下专栏:
相关文章推荐
由于在学习图像识别中的特征点检测中,需要用到Surf和Sift算法,但是这两个算法在OpenCV 3.1.0的Release版本中并不存在,因为他们是存放在opencv_contrib目录下面的未稳定...
        由于最近AR(增强现实)这个概念非常火爆,各种基于AR的应用及游戏逐渐面向大众,而在AR中最重要的两个技术就是跟踪识别和增强渲染,其中跟踪识别是通过OpenCV这个开源的计算机...
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。
一、 导出/导入(Export/Import) ...
opencv2.4.11+vs2010+win7-64bit配置,Debug,Release
为了方便阅读源码,最近在windows上安装了vs,并配置了Opencv的环境
1.首先下载,visual studio 2013 community(免费的),然后安装,过程不详细赘述(不造为什么...
Camshift原理
CamShift算法的全称是&Continuously Adaptive Mean-SHIFT&,即:连续自适应的MeanShift算法。其基本思想是对视频序列的所有图像帧都作...
对于刚入门的opencv玩家,提起目标跟踪,马上想起的就是camshift,但是camshift跟踪往往达不到我们的跟踪要求,包括稳定性和准确性。
opencv3.1版本发行后,集成了多个跟踪算法,即...
鉴于在OpenCV官网下载速度很慢,国内访问也不稳定,本博客将提供百度云盘下载链接,持续更新OpenCV及相关书籍下载,欢迎光临!V3.1
opencv-3.1.0.exe(Windows)
他的最新文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)【opencv配置】附加依赖项
opencv 2.3.1
#include &opencv.hpp&
opencv_calib3d231d.lib
&opencv_contrib231d.lib
opencv_core231d.lib
opencv_features2d231d.lib
&opencv_flann231d.lib
opencv_gpu231d.lib
opencv_highgui231d.lib
opencv_imgproc231d.lib
&opencv_legacy231d.lib
opencv_ml231d.lib
&opencv_objdetect231d.lib
&opencv_ts231d.lib
opencv_video231d.lib
opencv 2.4.3
#include &opencv.hpp&
opencv_core243d.lib
opencv_highgui243d.lib
opencv_video243d.lib
opencv_photo243d.lib
opencv_calib3d243d.lib
opencv_contrib243d.lib
opencv_features2d243d.lib
opencv_flann243d.lib
opencv_gpu243d.lib
opencv_imgproc243d.lib
opencv_legacy243d.lib
opencv_ml243d.lib
opencv_nonfree243d.lib
opencv_objdetect243d.lib
opencv_stitching243d.lib
opencv_ts243d.lib
opencv_videostab243d.lib
为项目的Release配置增加[附加依赖项 Additional Dependencies]:
opencv_core243.lib
opencv_highgui243.lib
opencv_video243.lib
opencv_photo243.lib
opencv_calib3d243.lib
opencv_contrib243.lib
opencv_features2d243.lib
opencv_flann243.lib
opencv_gpu243.lib
opencv_imgproc243.lib
opencv_legacy243.lib
opencv_ml243.lib
opencv_nonfree243.lib
opencv_objdetect243.lib
opencv_stitching243.lib
opencv_ts243.lib
opencv_videostab243.lib
#include &cv.h&
#include &highgui.h&
#include &cxcore.h&
#include &cvaux.h&
#pragma comment(lib, "cv")
#pragma comment(lib, "highgui")
#pragma comment(lib, "cxcore")
#pragma comment(lib, "cvaux")
cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。20:09 提问
win10+vs2015+opencv3.0.0配置出现问题求大神搭救
win10系统下,VS2015,配置OpenCV3.0.0。
环境变量、库目录、附加依赖项全部都选了X64。
VS2015的变异环境也是Debug X64。
但是一直出现这个错误:应用程序无法正常启动(0xc000007b)。
而且输出视图里一直有这两个错误:
“OpenCVTest3.exe”(Win32): 已加载“C:\Windows\System32\ucrtbased.dll”。无法查找或打开 PDB 文件。
“OpenCVTest3.exe”(Win32): 已加载“C:\Windows\System32\opencv_world300d.dll”。无法查找或打开 PDB 文件。
检查了System32文件,是有这两个dll的,所以问题到底在哪里呢?
而且我所有的配置都是X64的,难道不应该在SysWOW64里面找dll吗?
啊。。。求大神解答!!!
按赞数排序
我也遇到了这个问题,不知道楼主解决了没,能否共享一下解决方案
请问你解决了吗,我也是遇到同样问题
其他相关推荐

我要回帖

更多关于 opencv依赖项 的文章

 

随机推荐