c++代码里怎么用opencv

c++代码里怎么用opencv,第1张

一 在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运行了个测试程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10108163.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存