《学习OpenCV》笔记(一)

cvLoadImage("greatwave.png",1);返回值是IplImage类型

CvSize2D32f,是CvSize的变体类型,浮点型

CvArr->CvMat->IplImage派生关系

矩阵的创建方法:

cvCreateMat(), cvCreateMatHeader(), cvCreateData(), cvCloneMat()

ROI:感兴趣的区域。ROI的思想是,一旦设定ROI,通常作用于整幅图像的函数便会只对ROI所表示的子图像进行操作。

COI:channel of interest(感兴趣的通道)

设置或取消ROI, 使用cvSetImageROI()和cvResetImageROI()函数。

cvSVD,二维矩阵的奇异值分解

加权相加,

cvAddWeighted(

        const CvArr* src1,  

        double alpha,  

        const CvArr* src2,  

        double beta,  

        double gamma,  

        CvArr* dst )

可以用来实现alpha融合。

cvConvertScale(),数据类型的转换

色彩的空间转换都用到以下约定:8位图像范围是0~255,16位图像范围是0~65536,浮点数的范围是0.0~1.0。黑白图像转换为彩色图像时,最终图像的所有通道都是相同的;但是逆变换(例如RGB或BGR到灰度),灰度值的计算使用加权公式:

Y=0.299*R+0.587*G+0.114*B

CvSize cvGetSize(const CvArr*  arr),常用,返回CvSize结构

OpenCV提供了一系列的函数帮助我们绘制直线、方形和圆形等。

cvLine(),直线

 cvCircle(),圆形

 cvEllipse(), 椭圆

cvFillPoly(),多边形

cvPutText(),在图像上输出文本

 

Intel公司有一个产品叫做集成性能单元(Integrated Performance Primitives, IPP)库。这个库实际上是一个有着高性能内核的工具箱,它主要用于多媒体处理以及其他计算密集型应用,可发掘处理器架构的计算能力。


 

HighGUI,一个可移植的图形工具包

cvNamedWindow(),

cvResizeWindow(),

 cvLoadImage(), 

cvSaveImage(), 

cvShowImage(),

 cvMoveWindow(),

 cvDestroyAllWindows(), 

cvWaitKey(), 

在OpenCv中,处理视频时,我们最先了解的就是cvCapture。cvCapture结构包含从摄像机或视频文件中读取帧所需的信息。根据视频来源,我们可以使用下面两个函数之一来初始化CvCapture结构。

CvCapture* cvCreateFileCapture(const char* filename)

CvCapture* cvCreateCameraCapture(int index)

一定要检查函数的返回结果,无法打开,视频编码未知时均返回NULL指针。

int cvGrabFrame(CvCapture* capture)

IplImage* cvRetrieveFrame(CvCapture* capture)

IplImage* cvQueryImage(CvCapture* capture)

void cvReleaseCapture(CvCapture* capture)

double cvGetCaptureProperty()

int cvSetCaptureProperty()


 

平滑处理:减少图像的噪声或者失真,降低分辨率时,平滑处理是很重要的

cvSmooth()函数实现

图像形态学:膨胀和腐蚀,

cvErode(),腐蚀 

cvDilate(),膨胀

满水填充算法(Flood Fill)

尺寸调整:cvResize()将会对ROI区域调整尺寸,以匹配目标图像,同样,如果目标图像中已设置ROI值,那么cvResize()将会将源图像进行尺寸调整并填充到目标图像的ROI中。默认为线性插值法。可用的插值方法有:最近邻插值、线性插值、区域插值和三次样条插值。

图像金字塔

阈值化  

double cvThreshold(

    CvArr* src,
 

    CvArr* dst,
 

    double threshold,
 

    double max_value,
 

    int threshhold_type
 

);

自适应阈值

void cvAdaptiveThreshold(

    CvArr* src,
 

    CvArr* dst,
 

    double max_val,
 

    int adaptive_method = CV_ADAPTIVE_THRESH_MEAN_C,
 

    int threshold_type = CV_THRESH_BINARY,
 

    int block_size = 3,
 

    double param1 = 5
 

);

你可能感兴趣的:(学习OpenCV)