本帖最后由 三水 于 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[]数组用于存放输入的参数。
如输入test E:\jay.jpg,argc读取参数个数为2,argv[0]为test,而argv[1]中的E:\jay.jpg读出为E:\\jay.jpg。这个具体原因待整理。更多详见http://www.opencv.org.cn/index.p ... v%E8%AF%B4%E6%98%8E
IplImage *img = cvLoadImage("E:\lena.jpg");
此行代码是将图像加载到内存,cvLoadImage()函数通过文件名确定被加载文件的格式并自动分配图像所需内存。cvLoadImage()函数可以打开大部分常用图像格式,如BMP,JPEG,JPG,PNG等。该函数执行完后会返回一个指针,该指针指向描述图像文件数据结构IplImage分配的内存。E:\lena.jpg为指定图像所在地址,也可直接为lena.jpg,此处为程序默认储存地址([VS2010默认项目文件夹]\项目文件夹\项目文件夹 下)内的图片。lena.jpg原为大家图像都很熟悉的草帽女,但是我测试的时候没有去找就直接在e盘下重命名了张图片。
cvNamedWindow("Image:",1);
cvNamedWindow()函数将在屏幕上创建一个窗口用于显示图像。函数中第一个参数为窗口命名为"Image:",第二个参数为定义窗口属性,默认值为0,表示窗口大小不会因图像的大小而改变,图像将根据窗口大小进行变化充满窗口。为1或CV_WINDOW_AUTOSIZE时,窗口将根据图像的实际大小自动变化适应图像。
cvShowImage("Image:",img);
cvShowImage()函数通过第一个参数确定在已创建的哪个窗口中显示图像,且该函数被调用时窗口将被重绘并将图像显示到窗口中。
cvWaitKey();
函数功能为使程序暂停,等待触发按键。函数中参数为正值时,程序将暂停该整数值个毫秒后继续执行程序,没有按下按键也会如此。设置为0或者负数将一直等待用户触发按键。 |