《OpenCV学习笔记》---第一篇 第一个程序

                《OpenCV学习笔记》---第一篇 第一个程序

前言
自学OpenCV,写写笔记,路过的多多指点。

1.OpenCV的安装

OpenCV的安装网上有很多资料,这里就不多提了。我用的是OpenCV2.4.11, 开发工具是VS2010。在编写第一个OpenCV程序的时候遇到的第一个问题就是怎么配置工程。

2.配置工程

我说一下在VS2010下,OpenCV工程的配置。
    Add in the system Path:

    C:\opencv\build\x86\vc10\bin;



    Project->Project Property->Configuration Properties->VC++Directories ->Include Directories:

    C:\opencv\build\include\opencv

    C:\opencv\build\include\opencv2

    C:\opencv\build\include



    Project->Project Property->Configuration Properties->VC++Directories ->Library Directories:

    C:\opencv\build\x86\vc10\lib



    Project->Project Property->Configuration Properties->Linker->Input:

    opencv_calib3d2411.lib
    opencv_contrib2411.lib
    opencv_core2411.lib
    opencv_features2d2411.lib
    opencv_flann2411.lib
    opencv_gpu2411.lib
    opencv_highgui2411.lib
    opencv_imgproc2411.lib
    opencv_legacy2411.lib
    opencv_ml2411.lib
    opencv_nonfree2411.lib
    opencv_objdetect2411.lib
    opencv_ocl2411.lib
    opencv_photo2411.lib
    opencv_stitching2411.lib
    opencv_superres2411.lib
    opencv_ts2411.lib
    opencv_video2411.lib
    opencv_videostab2411.lib
    opencv_calib3d2411d.lib
    opencv_contrib2411d.lib
    opencv_core2411d.lib
    opencv_features2d2411d.lib
    opencv_flann2411d.lib
    opencv_gpu2411d.lib
    opencv_highgui2411d.lib
    opencv_imgproc2411d.lib
    opencv_legacy2411d.lib
    opencv_ml2411d.lib
    opencv_nonfree2411d.lib
    opencv_objdetect2411d.lib
    opencv_ocl2411d.lib
    opencv_photo2411d.lib
    opencv_stitching2411d.lib
    opencv_superres2411d.lib
    opencv_ts2411d.lib
    opencv_video2411d.lib
    opencv_videostab2411d.lib

这样工程就配置好了,可以编写第一个程序了。

3.第一个OpenCV程序。

#include <opencv2/opencv.hpp>  
#include <opencv2/legacy/compat.hpp>  
using namespace std;  
#include <cv.h>
#include <highgui.h>


int main()
{
    const char *pstrImageName = "图.bmp";  
    const char *pstrWindowsSrcTitle = "第一个OpenCV程序";   

    //从文件中读取图像 
    IplImage *pSrcImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);  

    //创建窗口  
    cvNamedWindow(pstrWindowsSrcTitle, CV_WINDOW_NORMAL);   

    //在指定窗口中显示图像  
    cvShowImage(pstrWindowsSrcTitle, pSrcImage);  

    //等待按键事件  
    cvWaitKey();  

    cvDestroyWindow(pstrWindowsSrcTitle);
    cvReleaseImage(&pSrcImage); 
    return 0;
}

对主要函数做讲解:
1.cvLoadImage
函数功能:打开图片
函数原型:IplImage* cvLoadImage( const char* filename, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR))
参数说明:
第一个参数是图片路径,该函数可以读取绝大多数格式类型的图片,包括BMP,DIB,JPEG,JPE,PNG,PBM,PGM,PPM,SR,RAS和TIFF。
第二个参数是指定加载图片的颜色类型,可选参数有:
CV_LOAD_IMAGE_UNCHANGED , 原样输出
CV_LOAD_IMAGE_GRAYSCALE , 转成单通道图输出
CV_LOAD_IMAGE_COLOR, 转成3通道图输出
CV_LOAD_IMAGE_ANYDEPTH, 转成8bit单通道图输出
CV_LOAD_IMAGE_ANYCOLOR , 转成8bit 3通道图输出

2.cvNamedWindow
函数功能:创建窗口
函数原型:int cvNamedWindow( const char* name, int flags CV_DEFAULT(CV_WINDOW_AUTOSIZE) )
参数说明:
第一个参数:窗口名称,也是窗口标识,类似于指针。
第二个参数:窗口属性,可选参数有:
CV_WINDOW_NORMAL ,可手动调节窗口大小
CV_WINDOW_AUTOSIZE ,不可手动调节窗口大小,窗口大小有内容大小决定
CV_WINDOW_OPENGL ,窗口支持OpenGL

3.cvShowImage
函数功能:在指定窗口中显示指定图像
函数原型:void cvShowImage( const char* name, const CvArr* image )
参数说明:
第一个参数:窗口名称
第二个参数:需显示的图片

4.cvWaitKey
函数功能:等待按键事件
函数原型:int cvWaitKey(int delay CV_DEFAULT(0))
参数说明:
第一个参数:延迟毫米数,为0时无限等待
返回值:若超时没有,则返回-1,否则返回被按键的值

5.cvDestroyWindow
函数说明:关闭窗口
函数原型:void cvDestroyWindow( const char* name )
参数说明:
第一个参数:窗口名称
这里提一下函数:void cvDestroyAllWindows(void),可以一次性关闭所有窗口

6.cvReleaseImage
函数说明:释放图像资源
函数原型:void cvReleaseImage( IplImage** image )
参数说明:
第一个参数:图片对象指针

编译,程序运行结果如下:这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值