opencv入门指南

heishanglaoyao heishanglaoyao     2023-01-27     256

关键词:

【OpenCV第一篇】安装OpenCV

本篇主要介绍如何下载OpenCV安装程序,如何在VS2008下安装配置OpenCV,文章最后还介绍了一个使用OpenCV的简单小例子。

《OpenCV入门指南》系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764

一.OpenCV的下载

可以到http://www.opencv.org.cn/index.php/Download,然后选一个较新版本下载。我下的是V2.3.1版本,下载地址是:

http://www.opencv.org.cn/download/OpenCV-2.3.1-win-superpack.exe

下载完成后,双击运行exe,选择输出目录,我选择的是D:opencv。然后解压缩就完成了安装。安装过程如下图所示:

技术分享图片

 

二.在我的电脑中配置OpenCV

在“我的电脑”右击弹出“系统属性”对话框,选择“高级”再点击“环境变量”,然后再编辑path,在“编辑用户变量”对话框的变量值输入以下三条,注意用“;”来分开。

D:opencvopencvuildx86vc9in;

D:opencvopencvuildx86mingwin;

D:opencvopencvuildcommon bbia32vc9;

技术分享图片

 

三.在VS2008中加入OpenCV

VS2008中点击“工具”,再点击“选项”,然后选择“项目和解决方案”,手动加入库文件,引用文件和包含文件即可完成OpenCVVS2008的导入。 

技术分享图片

技术分享图片

技术分享图片

 

四.第一个OpenCV程序

下面是最简单的OpenCV使用例子,功能也很简单——加载图像文件并显示出来。代码如下:

  1.  
    //显示图像文件
  2.  
    #include <opencv2/opencv.hpp>
  3.  
    using namespace std;
  4.  
     
  5.  
    #pragma comment(linker, "/subsystem:"windows" /entry:"mainCRTStartup"")
  6.  
     
  7.  
    int main()
  8.  
  9.  
    const char *pstrImageName = "冲浪大师赛001.jpg";
  10.  
    const char *pstrWindowsTitle = "OpenCV第一个程序(http://blog.csdn.net/MoreWindows)";
  11.  
     
  12.  
    //从文件中读取图像
  13.  
    IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);
  14.  
     
  15.  
    //创建窗口
  16.  
    cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE);
  17.  
     
  18.  
    //在指定窗口中显示图像
  19.  
    cvShowImage(pstrWindowsTitle, pImage);
  20.  
     
  21.  
    //等待按键事件
  22.  
    cvWaitKey();
  23.  
     
  24.  
    cvDestroyWindow(pstrWindowsTitle);
  25.  
    cvReleaseImage(&pImage);
  26.  
    return 0;
  27.  

对代码中的主要函数进行下讲解:

 

1.创建窗口 cvNamedWindow

函数名称:cvNamedWindow
函数功能:创建窗口

函数原型:
int cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE );

参数说明:
第一个参数表示
窗口的名字,它被用来区分不同的窗口,并被显示为窗口标题。被创建的窗口可以通过它们的名字被引用。
第二个参数表示
窗口属性标志。目前唯一支持的标志是CV_WINDOW_AUTOSIZE。当这个标志被设置后,用户不能手动改变窗口大小,窗口大小会自动调整以适合被显示图像。
函数cvNamedWindow创建一个可以放置图像和trackbar的窗口。

注意:
如果已经存在这个名字的窗口,这个函数将不做任何事情。

 

2.在指定窗口中显示图像 cvShowImage

函数名称:cvShowImage
函数功能:在指定窗口中显示图像

函数原型:
void cvShowImage
( const char* name, const CvArr* image );
参数说明:

第一个参数:窗口的名字。
第二个参数:
被显示的图像。

3.等待按键事件 cvWaitKey

函数名称:cvWaitKey

函数功能:等待按键事件

函数原型:
int cvWaitKey
( int delay=0 );
参数说明:

第一个参数:延迟的毫秒数,当delay<=0时表示无限等待。

函数返回值:

如果超过指定时间则返回-1,否则返回被按键的值。

 

编译,居然出错了!!错误信息如下:

1>正在链接...

1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvReleaseImage,该符号在函数_main 中被引用

1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvDestroyWindow,该符号在函数_main 中被引用

1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvWaitKey,该符号在函数_main 中被引用

1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvShowImage,该符号在函数_main 中被引用

1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvNamedWindow,该符号在函数_main 中被引用

1>opencv_test1.obj : error LNK2019: 无法解析的外部符号_cvLoadImage,该符号在函数_main 中被引用

 

现在如何解决这个问题了?既然是在链接时出的错,说明肯定有静态库没有被编译器找到。因此我们在VS2008中点击“项目”,再点击“属性”,依次展开“配置属性”-->“链接器”-->“输入”在“附加依赖项中”添加如下静态文件。

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

 

技术分享图片

再编译,成功。程序运行结果如下图所示:

技术分享图片

 

呵呵,很酷的冲浪~~

 

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

















opencv入门指南(转载)

...18网上的总结的一些用openncv的库来做的事:下面列出OpenCV入门指南系列目录,以方便大家查看:文章链接:http://blog.csdn.net/morewindows/article/details/8426318下面这些链接在文章末尾:1.《【OpenCV入门指南】第 查看详情

系列文章--opencv入门教程

 《OpenCV3编程入门》内容简介&勘误&配套源代码下载【OpenCV入门教程之十八】OpenCV仿射变换&SURF特征点描述合辑【OpenCV入门教程之十七】OpenCV重映射&SURF特征点检测合辑【OpenCV入门教程之十六】OpenCV角点检测之Harris... 查看详情

opencv轻松入门——opencv入门(代码片段)

importcv2file_path='/Users/guojun/Desktop/cute.jpeg'#读取图片retval=cv2.imread(file_path,cv2.IMREAD_GRAYSCALE)#创建显示的窗口名称cv2.namedWindow('cute')#在窗口上显示图片cv2.imshow('cute',re 查看详情

opencv|opencv实战从入门到精通系列四--常用函数讲解

...标 ★,与你不见不散本文为学习笔记记录本文是《OpenCV实战从入门到精通》系列之第4篇:OpenCV|OpenCV实战从入门到精通系列一--OpenCV宏的讲解OpenCV|OpenCV实战从入门到精通系列二--OpenCV图像腐蚀OpenCV|OpenCV实战从入门到精通... 查看详情

opencv教程

 《OpenCV3编程入门》内容简介&勘误&配套源代码下载【OpenCV入门教程之十八】OpenCV仿射变换&SURF特征点描述合辑【OpenCV入门教程之十七】OpenCV重映射&SURF特征点检测合辑【OpenCV入门教程之十六】OpenCV角点检测之Harris... 查看详情

opencv介绍与入门

OpenCV入门OpenCV介绍关于OpenCV1.OpenCV能做什么;2.OpenCV与图形学与FFmpeg的关系;3.OpenCV的未来;OpenCV介绍OpenCV是计算机视觉的框架关于OpenCV1.OpenCV能做什么;目标识别i.人脸识别ii.车辆识别iii.物体识别等自动驾驶i.车道... 查看详情

opencv入门指南第七篇线段检测与圆检测(代码片段)

【OpenCV入门指南】第七篇线段检测与圆检测在《【OpenCV入门指南】第五篇轮廓检测上》与《【OpenCV入门指南】第六篇轮廓检测下》讲解了OpenCV的轮廓检测。本篇将讲解在OpenCV中使用线段检测与圆检测。线段检测与圆检测主要运用... 查看详情

opencv学习-入门系列汇总

reference:OpenCV学习之路(附加资料分享)opencv学习-环境配置与搭建opencv学习-图像对象的创建与赋值opencv学习-读取图像、创建窗口、显示图像、色彩空间转换、保存图像openCV学习-获取图像的尺寸和通道数opencv学习-图... 查看详情

opencv入门指南第六篇轮廓检测下(代码片段)

《OpenCV入门指南》系列文章地址:http://blog.csdn.net/morewindows/article/category/863841上一篇《【OpenCV入门指南】第五篇轮廓检测上》介绍了cvFindContours函数和cvDrawContours函数,并作了一个简单的使用示范。本篇将展示一个实例,让大家对... 查看详情

opencv|opencv实战从入门到精通系列二--opencv图像腐蚀

...标 ★,与你不见不散本文为学习笔记记录本文是《OpenCV实战从入门到精通》系列之第2篇OpenCV|OpenCV实战从入门到精通系列一--OpenCV宏的讲解图像腐蚀形态学转换主要针对的是二值图像(0或1)。图像腐蚀类似于“领域... 查看详情

opencv入门指南第四篇图像的二值化(代码片段)

【OpenCV入门指南】第四篇图像的二值化  在上一篇《【OpenCV入门指南】第三篇Canny边缘检测》中介绍了使用Canny算子对图像进行边缘检测。与边缘检测相比,轮廓检测有时能更好的反映图像的内容。而要对图像进行轮廓检... 查看详情

opencv编程入门目录(代码片段)

第一部分快速上手OpenCV1第1章邂逅OpenCV31.1OpenCV周边概念认知41.1.1图像处理、计算机视觉与OpenCV41.1.2OpenCV概述41.1.3起源及发展51.1.4应用概述61.2OpenCV基本架构分析71.3OpenCV3带来了什么111.3.1项目架构的改变111.3.2将OpenCV2代码升级到OpenCV... 查看详情

opencv配置指南

今天配置了一把opencv,在vs2013,Python。IDEA(Java)上分别作了配置。总结成文档,分享给大家。搭建opencv+vs2013的环境安装opencv3.0alpha和vs2013一:配置opencv的环境变量:1:在系统变量增加变量OPENCV新建button-->输入变量名和变量的... 查看详情

opencv入门教程

http://www.opencv.org.cn/forum.php?mod=attachment&aid=MTE5MDV8ZTgwZjJlMzd8MTQ4MDE1ODU3NXwwfDMzNTQ5 查看详情

opencv入门指南第三篇canny边缘检测(代码片段)

【OpenCV入门指南】第三篇Canny边缘检测   图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘。   Canny边缘检测算子是Jo... 查看详情

opencv入门指南第十三篇人脸检测(代码片段)

【OpenCV入门指南】第十三篇人脸检测    本篇介绍图像处理与模式识别中最热门的一个领域——人脸检测(人脸识别)。人脸检测可以说是学术界的宠儿,在不少EI,SCI高级别论文都能看到它的身影。甚至很多高校... 查看详情

如何从入门开始学习opencv?

一、OpenCV简介OpenCV是一款由Intel公司俄罗斯团队发起并参与和维护的一个计算机视觉处理开源软件库,支持与计算机视觉和机器学习相关的众多算法,并且正在日益扩展。1.1OpenCV的优势:编程语言OpenCV基于C++实现,同时提供python,... 查看详情

游戏开发大神“浅墨”《opencv3编程入门》作者毛星云“意外”离世

    浅墨--《OpenCV3编程入门》​有多少朋友是通过CSDN博客或者《OpenCV3编程入门》这本书认识浅墨大佬的,尽管OpenCV5即将发布,但《OpenCV3编程入门》仍是国内目前累计销量最高的OpenCV书籍。毛星云毛星云(1991年-202... 查看详情