如何安装opencv和cv

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何安装opencv和cv相关的知识,希望对你有一定的参考价值。

参考技术A 1、使用准备:usingnamespacecv;2、Mat的声明Matm=Mat(rows,cols,type);Matm=Mat(Size(width,height),type);MatA=Mat(3,4,CV_32FC1);MatB=Mat(4,3,CV_32FC1);3、Mat赋值vectorv;//supposeitisalreadyfullMatm1=Mat(v,true);//booleanvaluetrueisnecessaryinordertocopydatafromvtom1CvMat*p1=====??Matm2=Mat(p1);4、Mat之间运算MatC=2*A*B;MatC=C.inv();//NowCisitsowninversematrixMatD=A.t();//DisthetransposedmatrixofAMata=Mat(4,1,CV_32FC3);//ais4x1,3channelsMatb=a.reshape(1);//bis4x3,1channel5、单通道Mat元素读写Mata=Mat(4,3,CV_32FC1);floatelem_a=a.at(i,j);//accesselementaij,withifrom0torows-1andjfrom0tocols-1Pointp=Point(x,y);floatelem_a=a.at(p);//Warning:yrangesfrom0torows-1andxfrom0tocols-16、多通道Mat元素读写template_Tp&at(inty,intx);//cxcore.hpp(868)templateconst_Tp&at(inty,intx)const;//cxcore.hpp(870)template_Tp&at(Pointpt);//cxcore.hpp(869)templateconst_Tp&at(Pointpt)const;//cxcore.hpp(871)//definededincxmat.hpp(454-468)typedefVecVec2f;//cxcore.hpp(254)//wecanaccesstheelementlikethis:Matm(Size(3,3),CV_32FC2);Vec2f&elem=m.at(row,col);//orm.at(Point(col,row));elem[0]=1212.0f;elem[1]=326.0f;floatc1=m.at(row,col)[0];//orm.at(Point(col,row));floatc2=m.at(row,col)[1];m.at(row,col)[0]=1986.0f;m.at(row,col)[1]=326.0f;7.选取Mat上指定区域方法Matsrc;Rectrect;Matdst=src(rect);或者Matdst(src,rect);

OpenCV 2.3.1 cxcore210.lib 和 cv210.lib 继承值

【中文标题】OpenCV 2.3.1 cxcore210.lib 和 cv210.lib 继承值【英文标题】:OpenCV 2.3.1 cxcore210.lib and cv210.lib inherited values 【发布时间】:2012-04-24 10:40:24 【问题描述】:

我现在正在使用 OpenCV 2.3.1 和 MS Visual Studio 2010 工作一段时间,并将其安装在多台 PC 上。过去,我也在我的一台 PC 上安装了 openCV 2.1.0。我的问题是,在我安装了 openCV 2.1.0 的 PC 上,cxcore210.lib 和 cv210.lib 在链接器 >> 输入 >> 附加依赖项中列为继承值

问题是,当我尝试在这台 PC 上使用 OpenCV 2.3.1 构建程序时(我已经正确设置了所有链接器和东西,并且在我的“干净”PC 上它工作正常)它一直要求这 2库文件。当然,我可以再次安装 OpenCV 2.1.0 并链接到这些文件,但这并不是我真正想要的,因为我正在使用 OpenCV 2.3.1

我尝试重新安装我的 Visual Studio,但这也不能解决问题。 OpenCV 2.1.0 也被卸载,路径设置也被删除。有谁知道为什么它一直在寻找 cxcore210.lib 和 cv210.lib 作为继承值,我该如何摆脱它们?

【问题讨论】:

【参考方案1】:

那是因为您的项目仍然认为您使用的是 OpenCV 2.1。您需要转到Linker > Input > Additional Dependencies 下的项目设置,并将cxcore210.lib cv210.lib 替换为各自的v2.3.1 对应项,即:

opencv_core231.lib opencv_highgui231.lib

您可能需要添加其他库,例如 opencv_imgproc231.libabd 可能还有其他库,具体取决于您的程序在 OpenCV 中使用的内容。这些版本之间发生了很多变化。

此外,如果您将 OpenCV 2.3.1 安装在与用于 v2.1 的目录不同的目录中,您将不得不在项目设置中调整一些其他内容:

标头路径:C/C++ > General > Additional Include Directories 可能还有图书馆的路径:Linker > General > Additional Library Directories

This tutorial 逐步展示了如何配置这些以及更多内容。

【讨论】:

我完全理解您的解决方案,并且知道如何正确设置所有内容(为此苦苦挣扎,但 Bytefish 帮助我解决了这个问题)。问题是我根本无法删除 cxcore210.lib 和 cv210.lib。当我转到 Linker > Input > Additional Dependencies 时,这两个库在灰色框中列为继承值。我无法从那里删除它们 我明白了。我不知道为什么会这样,它不应该,所以我猜你将不得不从头开始重新创建项目。创建一个新的 VS 项目并开始添加文件,最后调整项目设置。我不知道其他方法。 似乎也没有帮助。我什至重新安装了 Visual Studio(并因此重新创建了项目)但是即使在使用新创建的项目进行新安装后,这两个 lib 文件仍然列为继承。我真的不想做一个完整的系统恢复来解决这个问题:p 您的意思是,如果您创建一个新的 hello world 项目,这些库将在项目设置中进行硬编码??? 是的 :p 它们被列为继承值,位于 kernel32.lib、user32.lib 和更多这些文件之间。我创建的每个新项目这 2 个 lib 文件在某种程度上都是从某个地方继承而来的。【参考方案2】:

嗯,现在似乎可以工作,我想我设法找到了一些解决方法。我去了链接器>输入>附加依赖项并取消选中“从父级或项目默认值继承”框。两个 lib 文件都保留为继承值,但至少我可以正确构建和运行项目,而不会出现错误告诉我指向 cxcore210.lib cv210.lib

【讨论】:

以上是关于如何安装opencv和cv的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“没有名为 cv2 的模块”?

python如何安装cv2库

python如何安装cv2库

论述在Python程序中如何导入OpenCV以及matplotlib库中的pyplot

python 如何安装cv2库

linux系统opencv的安装与使用