三水 发表于 2011-9-23 19:01:20

OpenCV学习笔记之——初试

本帖最后由 三水 于 2011-9-23 19:51 编辑

呃,网上的学习笔记好乱@@
还是自己边学边写吧。不然几个月后又忘记怎么弄了。

OpenCV如何在VS2010下配置的方法及OpenCV的介绍就不写了。
如有需要,再写如何配置的笔记。




第一个练习——【打开图片】


键入代码:

#include "stdafx.h"
#include "cv.h"
#include <cxcore.h>
#include <highgui.h>


int _tmain(int argc, _TCHAR* argv[])
{
      IplImage *img = cvLoadImage("funny-pictures.jpg");
      cvNamedWindow("Image:",1);
      cvShowImage("Image:",img);

      cvWaitKey();
      cvDestroyWindow("Image:");
      cvReleaseImage(&img);

      return 0;

}

程序运行后显示如下:





代码解析:
#include "stdafx.h"
#include "cv.h"
#include <cxcore.h>
#include <highgui.h>
引用不再解释,不太理解可详见c++ premier。稍后转录过来。

int _tmain(int argc, _TCHAR* argv[])
在main函数中定义一个argc用于读取输入参数个数,argv[]数组用于存放输入的参数。
如输入testE:\jay.jpg,argc读取参数个数为2,argv为test,而argv中的E:\jay.jpg读出为E:\\jay.jpg。这个具体原因待整理。更多详见http://www.opencv.org.cn/index.php/Main%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0argc%EF%BC%8Cargv%E8%AF%B4%E6%98%8E

IplImage *img = cvLoadImage("E:\lena.jpg");
此行代码是将图像加载到内存,cvLoadImage()函数通过文件名确定被加载文件的格式并自动分配图像所需内存。cvLoadImage()函数可以打开大部分常用图像格式,如BMP,JPEG,JPG,PNG等。该函数执行完后会返回一个指针,该指针指向描述图像文件数据结构IplImage分配的内存。E:\lena.jpg为指定图像所在地址,也可直接为lena.jpg,此处为程序默认储存地址(\项目文件夹\项目文件夹下)内的图片。lena.jpg原为大家图像都很熟悉的草帽女,但是我测试的时候没有去找就直接在e盘下重命名了张图片。

cvNamedWindow("Image:",1);
cvNamedWindow()函数将在屏幕上创建一个窗口用于显示图像。函数中第一个参数为窗口命名为"Image:",第二个参数为定义窗口属性,默认值为0,表示窗口大小不会因图像的大小而改变,图像将根据窗口大小进行变化充满窗口。为1或CV_WINDOW_AUTOSIZE时,窗口将根据图像的实际大小自动变化适应图像。

cvShowImage("Image:",img);
cvShowImage()函数通过第一个参数确定在已创建的哪个窗口中显示图像,且该函数被调用时窗口将被重绘并将图像显示到窗口中。

cvWaitKey();
函数功能为使程序暂停,等待触发按键。函数中参数为正值时,程序将暂停该整数值个毫秒后继续执行程序,没有按下按键也会如此。设置为0或者负数将一直等待用户触发按键。

支持-吴春光 发表于 2011-9-23 19:14:01

我初试的是人脸识别…… 性格不够扎实

弘毅 发表于 2011-9-23 19:22:12

这个MM好甜。。。。。

三水 发表于 2011-9-23 19:52:04

支持-吴春光 发表于 2011-9-23 19:14 static/image/common/back.gif
我初试的是人脸识别…… 性格不够扎实

我也有人脸识别的例程,我想一步一步学过去好了。这样熟悉一下基本的操作

ardyPro 发表于 2011-9-23 22:48:16

本帖最后由 ardyPro 于 2011-9-23 23:07 编辑

如输入testE:\jay.jpg,argc读取参数个数为2,argv为test,而argv中的E:\jay.jpg读出为E:\\jay.jpg。
===========
这个是不是跟C语言的转义有关?你把路径放深一点试一试呢?

三水 发表于 2011-9-24 11:21:30

ardyPro 发表于 2011-9-23 22:48 static/image/common/back.gif
如输入testE:\jay.jpg,argc读取参数个数为2,argv为test,而argv中的E:\jay.jpg读出为E:\\jay.jpg ...

路径放深点它会自动编译为正确的,那段话后面的链接里有更详细的解释。

hunduncn 发表于 2011-11-14 23:29:03

请上在VS2010配置OPENCV的教程。我配置了1天了。还是不能跑

davidce 发表于 2012-2-20 15:17:18

vc++_2008和vc++_2010安装方法可参考:http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.3.1
vs2010配置VC++目录可参考:http://blog.csdn.net/zhangyafengcpp/article/details/6847821

bemc 发表于 2013-10-24 09:11:47

有详细的资料 下载吗
页: [1]
查看完整版本: OpenCV学习笔记之——初试