OpenCV(三):OpenCV命名规则+实例演示

一、OpenCV命名规则

     1、函数 命名规则

            通用函数名: cvActionTargetMod(...) 
            其中,   Action = 核心功能(core functionality) (e.g. set, create)
                         Target = 目标图像区域(target image area) (e.g. contour, polygon)
                         Mod    = (可选的)调整语(optional modifiers) (e.g. argument type)

     2、 矩阵数据类型:
           通用矩阵数据类型:  CV_<bit_depth>(S|U|F)C<number_of_channels> 
           其中, S = 符号整型
                       U = 无符号整型
                       F = 浮点型 
           E.g.:   CV_8UC1 是指一个8位无符号整型单通道矩阵,
                     CV_32FC2是指一个32位浮点型双通道矩阵。
    3、 图像数据类型:
          通用图像数据类型:IPL_DEPTH_<bit_depth>(S|U|F) 
          E.g.: IPL_DEPTH_8U 图像像素数据是8位无符号整型。
                  IPL_DEPTH_32F图像像素数据是32位浮点型。
    4、 头文件:
           #include <cv.h>
           #include <cvaux.h>
           #include <highgui.h>  
           #include <ml.h>
           #include <cxcore.h>   // 一般不需要,cv.h 内已包含该头文件

二、范例演示+相关函数分析

1、第一个程序:显示图像

【步骤】:【文件】->【 新建】->【 win32 Console Application】-> 【一个"Hello World!" application】,点击【Finish】
【代码】:
#include "stdafx.h"
#include "cv.h"         //OpenCV的基本函数头文件
#include "highgui.h"    //OpenCV的图像显示函数的头文件
#include "cxcore.h"
int main(int argc, char* argv[])
{
	IplImage* src=cvLoadImage("F:\\1.bmp"); //"F:\\1.bmp"中\\是转义字符 
    cvNamedWindow("win");
    cvShowImage("win",src);
    cvWaitKey(0);
    cvReleaseImage(&src);
    cvDestroyWindow("win");
	return 0;
}

【注意】:要对link进行配置,否则会编译不通过
                 【project】->【Settings】->【Link】,在object/library/modules中添加: cv.lib highgui.lib cxcore.lib

【函数分析】:
            (1)cvLoadImage
                       1)  函数原型:IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );
                                filename :要被读入的文件的文件名(包括后缀);
                                flags :指定读入图像的 颜色深度,指定的颜色可以将输入的图片转为如下3种信道:
                                                       #define CV_LOAD_IMAGE_UNCHANGED  -1     /* 图像颜色不变 */
                                                       #define CV_LOAD_IMAGE_GRAYSCALE   0      /*灰度图像(单通道) */
                                                       #define CV_LOAD_IMAGE_COLOR   1         /* 彩色图像(3通道图像) */
                                              选中CV_LOAD_IMAGE_ANYDEPTH,则输入图像格式可以为8位无符号,16位无符号,32位有符号或者32位浮点型。
                                                       #define CV_LOAD_IMAGE_ANYDEPTH    2
                                                       #define CV_LOAD_IMAGE_ANYCOLOR    4   /* 保持原样 */
                              如果想要载入最真实的图像,选择CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR 
                             如果输入有冲突的标志,将采用较小的数字值。比如CV_LOAD_IMAGE_GRAYSCALE | CV_LOAD_IMAGE_COLOR将载入单通道图。

                      2)cvLoadImage的功能
                            通过文件名确定被加载图像的格式,并且该函数在内部分配图像数据结构所需要的内存空间。
                            支持的图像格式:BMP,DIB,JPEG,JPE,PNG,PBM,PGM,PPM,SR,RAS,TIFF。
          (2)cvNamedWindow
               函数原型:int cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE );
                                name:窗口的标志。如果已经有同名窗口,则该函数什么也不干。
                                Flags:CV_WINDOW_AUTOSIZE ,会根据图像大小自动调整窗口大小。如果是0,则窗口大小不变。
     (3)cvShowImage
               函数原型:void cvShowImage( const char* name, const CvArr* image );
                                 name:窗口的标志。这个标志是cvNamedWindow函数设定的。
                                 image:被显示的图像。
              功能:函数cvShowImage 在指定窗口中显示图像。如果窗口创建的时候被设定标志CV_WINDOW_AUTOSIZE,那么图像将以原始尺寸显示;      否则,图像将被伸缩以适合窗口大小
     (4)cvWaitKey
             Int cvWaitKey(int key)
             Key:如果key的值是大于0的数,那么该函数的功能是,在此处暂停key毫秒。如果是小于等于0的数,那么,该函数是在等待用户的按键输入。
   (5)cvReleaseImage(IplImage** src) 释放图像空间。例:cvReleaseImage(&src);
     (6)  cvDestroyWindow(char* name)
             注销一个窗口。同时释放为该窗口所分配的所有内存(包括窗口内部的图像内存缓冲区)


【运行结果】
OpenCV(三):OpenCV命名规则+实例演示_第1张图片


你可能感兴趣的:(opencv,范例演示,OpenCV命名规则)