
一 在VC编译器下,在Project菜单下选择setting,d出对话框。
1 设置预编译的头文件
选择C/C++ Category,在下拉菜单中选择Preprocessor,然后在Additional Include directories 中输入以下几项:
C:\Program Files \OpenCV\cv\include (根据本人机器上OpenCV的安装路径进行设置,如在D盘,则写D: ,以下同)
C:\Program Files \OpenCV\otherlibs\highgui
C:\Program Files \OpenCV\cxcore\include(新版本需要)
C:\Program Files \OpenCV\otherlibs\cvcam\include
每一条之间用逗号隔开。其中C:\Program Files\Intel\opencv 为OpenCV的安装路径,这是通用的安装路径,建议最好采用这种设置,以方便大家交流;不然,每次都要重新设置路径,比较麻烦。
2 设置链接库
在 Link按键下的 Category下拉菜单中选择 Input选项(指定要连接的库文件,放弃连接的库文件hao ),在Additional library path中,输入:
C:\Program Files \OpenCV\lib
最后在 Setting For下拉菜单中依次选择 Win32 Debug和 Win32 Release,分别在Object /library modules 输入:
cvlib highgui lib cxcorelib cvcamlib
注意每个库之间用一个空格隔开。
或者直接在all configurations中的Object /library modules 输入:cvlib highguilib cxcorelib(新版本需要) cvcamlib
(cxcorelib highguilib 是几乎所有OpenCV程序都要用到的函数库,分别封装了基本的函数和图形界面接口,cvlib中封装了大量的图像处理函数,cvcamlib中封装了很多针对视频流的处理函数)
当前工程就可以使用OpenCV的函数了。
二 如果一直要使用OpenCV的函数,把其路径设置到系统目录下
在Tools 菜单下选择 Options 子菜单,在d出的对话框中选择Directory,将用到的几个库的路径添加进去。以后只需将所用的库在Object /library modules下输入就可以了,不用再每次指定路径。
在Show directories for 下拉菜单中选择Include files,输入:
C:\Program Files \OpenCV\cv\include
C:\Program Files \OpenCV\otherlibs\highgui
C:\Program Files \OpenCV\cxcore\include(新版本需要)
C:\Program Files \OpenCV\otherlibs\cvcam\include
在Show directories for 下拉菜单中选择Library files,输入:
C:\Program Files \OpenCV\lib
注意:(防止每次都拷贝dll文件)
我的电脑—属性—高级—环境变量—path—C:\Program Files\OpenCV\bin
开始-运行-cmd打开命令行窗口,输入你程序所在的盘名(例D:)会出现D:\>符号,然后输入cd(打开的意思)复制你的程序编译之后的debug或者release窗口,(例如,我建立在F盘下的firstcaption1的项目,我在debug状态下运行的程序,F:\projects\opencv\firstcaption1\Debug),打开之后第一个参数输入你生成的exe文件,第二个参数输入名字(该要放在debug的文件夹内),我的参数输入是firstcaption1exe ajpg回车就会得到你想要的结果了。我应该说得很清楚了吧,你可以再看看带参数的main函数运行方法
CMakeListstxt里面的内容如下:
cmake_minimum_required(VERSION 26)
PROJECT(Threshold)
FIND_PACKAGE(OpenCV REQUIRED )
INCLUDE_DIRECTORIES( ${OPENCV_INCLUDE_DIR} )
ADD_EXECUTABLE(Threshold MyCVProjectcpp)
TARGET_LINK_LIBRARIES(Threshold ${OpenCV_LIBS})
OpenCV是一个开源的图像处理库,QML是Qt官方推出的一个描述性语言,QtMarkupLanguage,QtQuick也是Qt官方推出的一个技术框架,在开发嵌入式、动态触屏等时有一定的优势。
模块的作用:
打一个很简单的比方,QML就是Qt的HTML,C就是Qt的JavaScript,而QtQuick相当于一些已经集成好的开发框架,使开发应用程序变得更加简单省事。
OpenCV是一个基于C/C的开源图像处理库,和Qt本身没有太多关联,其主要是用于计算机视觉和图形开发,Qt的扩展应用OpenCV并不是每个应用程序都要用到,只是某些有特殊需求的应用程序可以更方便地使用Qt扩展的OpenCV应用。比如说用Qt开发一个软件,要使用人脸识别功能,就可以集成OpenCV来实现。
使用频率:
虽然说QML相当于HTML,C相当于JavaScript,但是还是有一定区别:所有的网页都是通过解析HTML渲染出的,JavaScript虽然可以动态改变网页,但是最终还是通过改变HTML来达到效果;QML、C的关系恰好反过来,在Qt中,C是“更加底层”的,QML使用更加简单的标记语言的语法来调用底层的C绘图支持API,从而提高程序开发的效率。
使用QML可以更快速、简捷地开发应用程序,在Qt中的使用频率也是很高的,不过这要根据特定开发人群、开发目标而定。有些开发者习惯直接使用C开发,而有些开发者更喜欢简单的QML,很多时候都是“用QML开发用户界面,用C开发业务逻辑”,但是用C开发用户界面的也不在少数。
QtQuick是一套开发框架,核心语言就是QML。
QtQuick的使用频率不低,从Qt的NewProject界面就可以看出,QtQuick是和Qt传统的CWidge平起平坐的(当然还有QtforPython等)。
OpenCV在不需要图形处理功能的情况下是不需要用到的,所以不怎么好说“使用频率”,因为这是针对特定的软件需求来的。
是否有必要学习:
QtQuick能够使应用程序开发更有效率,但是并不是开发一个程序必备的,能用QtQuick开发的,C肯定能够做出来,但是耗费时间、精力更多。在Qt开发工作这一块,掌握Qt的核心功能是必须的,而且这还远远不够。在招聘的时候肯定是考察应聘者对Qt各种技术和开发思想的理解和掌握情况,而QtQuick是官方推出的框架,掌握其开发方法应该是基本功。
程序的返回值是-1,说明程序进入了这个判读语句中:
//如果读入图像失败
if(imgempty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
单步调试你的程序,仔细看看这步的运行结果:Mat img = imread(imagename);
执行这个语句之后Mat img这个类成员是否成功读入了图像?
如果没有,检查一下你的读入图像文件路径是否正确,文件名是否有错误。
希望能帮到你。
SQL Server / Oracle / MS Access: CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
缺少cxcore100dll,应该是没有修改 *** 作系统的环境变量,将 opencv安装目录/bin目录 添加到环境变量path中(11的安装时有修改环境变量的选项)。
OpenCV不用更新,用新版只需要修改相关的目录即可。将环境变量path中opencv的bin目录改为当前版本的opencv的bin目录,程序的include目录、lib目录也需要改成当前目录。
OpenCV 23 不需要安装,解压缩之后的文件中有对各个编译器已经编译好的dll和lib文件,在build目录下,有vc9、vc10和mingw三种版本。
也可以自己编译opencv,具体方法可以去OpenCV中文网站中找
>
以上就是关于c++代码里怎么用opencv全部的内容,包括:c++代码里怎么用opencv、请教《学习OpenCV》里的第一个小程序、Ubuntu下安装好OpenCV 设置opencv_DIR路径问题 用cmake运行了个测试程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)