• 1.摘要
  • 2.基本信息
  • 3.基本内容

cvEqualizeHist

基本信息

  • 中文名

    cvEqualizeHist

  • 函数使用

    void cvEqualizeHist( );

  • 效果

    增强图像的亮度对比度

  • 属性

    程序设计函数

  • 性质

    开放计算机视觉库库函数

  • 用途

    使灰度图象直方图均衡化

基本内容

cvEqualizeHist

该函数为开放计算机视觉(OpenCV)库库函数,用来使灰度图象直方图均衡化。

定义:

void cvEqualizeHist( const CvArr* src, CvArr* dst );

参数:

src输入的 8-比特 单信道图像

dst输出的图像与输入图像大小与数据类型相同

函数 cvEqualizeHist 采用如下法则对输入图像进行直方图均衡化:

1:计算输入图像的直方图 H

2:直方图归一化,因此直方块和为255

3:计算直方图积分

4:采用H'作为查询表:dst(x,y)=H'(src(x,y))进行图像变换。

该方法归一化图像亮度和增强对比度。

直方图均衡化,可以将比较淡的图像变换为比较深的图像(即增强图像的亮度及对比度)。直方图均衡化后面潜在的数学原理是一个分布(输入的亮度直方图)被映射到另一个分布(一个更宽,理想统一的亮度值分布),映射函数是一个累积分布函数。对于连续分布,结果将是准确的均衡化。在cvEqualizeHist中,原始图像及目标图像必须是单通道,大小相同的8位图像,对于彩色图像,必须先将每个通道分开,再分别进行直方图均衡化处理,然后将通道合并形成新的图像。操作方法如下:

Split

Split 分割多通道数组成几个单通道数组或者从数组中提取一个通道 void cvSplit( const CvArr* src, CvArr* dst0, CvArr* dst1, CvArr* dst2, CvArr* dst3 ); #define cvCvtPixToPlane cvSplit src 原数组. dst0...dst3 目标通道 函数 cvSplit 分割多通道数组成分离的单通道数组d。可获得两种操作模式 . 如果原数组有N通道且前N输出数组非NULL, 所有的通道都会被从原数组中提取,如果前N个通道只有一个通道非NULL函数只提取该指定通道,否则会产生一个错误,馀下的通道(超过前N个通道的以上的)必须被设置成NULL,对于设置了COI的IplImage 结使用cvCopy 也可以从图像中提取单通道。

Merge

Merge 从几个单通道数组组合成多通道数组或插入一个单通道数组 void cvMerge( const CvArr* src0, const CvArr* src1, const CvArr* src2, const CvArr* src3, CvArr* dst ); #define cvCvtPlaneToPix cvMerge src0... src3 输入的通道. dst 输出数组. 函数cvMerge 是前一个函数的反向操作。如果输出数组有N个通道并且前N个输入通道非NULL,就拷贝所有通道到输出数组,如果在前N个通道中只有一个单通道非NULL ,只拷贝这个通道到输出数组,否则 就会产生错误。除前N通道以外的馀下的通道必须置NULL。对于设置了COI的 IplImage结构使用 cvCopy也可以实现向图像中插入一个通道 。