/*-------------------------------------------------------------------------*/
// 函数名称: histeq()
// 传入参数:
// BYTE*dstData 要匹配的灰度图像内存空间
// double *srcArray 模版的直方图累积,并进行归一化,大小为256
// int m_Width 匹配内存空间的宽度
// int m_Height 匹配内存空间的高度
// int m_pitch 匹配内存空间的每行所在内存大小
/*-------------------------------------------------------------------------*/
void histeq(BYTE*dstData,double *srcArray,int m_Width,int m_Height,int m_pitch)
{
double dstHist[];
memset(dstHist,, * sizeof(double)); int i,j; double dstArray[];
memset(dstArray,, * sizeof(double)); //统计直方图
for (i = ;i < m_Height;i++)
{
for (j = ;j < m_Width;j++)
{
dstHist[(int)dstData[i * m_pitch + j]]++;
}
} //计算直方图累积
double m_Bytes = m_Width * m_Height;
dstArray[] = dstHist[];
for (i = ;i < ;i++)
{
dstArray[i] = dstArray[i - ] + dstHist[i];
} //直方图累积归一化
for (i = ;i < ;i++)
{
dstArray[i] /= m_Bytes;
} //直方图匹配
double m_diffA,m_diffB;
int k = ;
BYTE mapPixel[];
memset(mapPixel,, * sizeof(BYTE));
for (i = ;i < ;i++)
{
m_diffB = ;
for (j = k; j < ;j++)
{
m_diffA = abs(dstArray[i] - srcArray[j]);
if (m_diffA - m_diffB < 1.0E-5)
{
m_diffB = m_diffA;
k = j;
}
else
{
k = j - ;
break;
}
}
if (k == )
{
for (int l = i;l < ;l++)
{
mapPixel[l] = (BYTE) k;
}
break;
}
mapPixel[i] = (BYTE) k;
} //目标图像查找索引表
for (i = ;i < m_Height;i++)
{
for (j = ;j < m_Width;j++)
{
dstData[i * m_pitch + j] = mapPixel[dstData[i * m_pitch + j]];
}
}
}

源地址:http://blog.csdn.net/hcx25909/article/details/7090921

C++ 直方图匹配算法代码的更多相关文章

  1. 图解BM(Boyer-Moore)字符串匹配算法+代码实现

    简介 本篇文章主要分为两个大的部分,第一部分通过图解的方式讲解BM算法,第二部分则代码实现一个简易的BM算法. 基本概念 bm是一个字符串匹配算法,有实验统计,该算法是著名kmp算法性能的3-4倍,其 ...

  2. 模式匹配之sift--- sift图像特征提取与匹配算法代码

    sift,The Scale Invariant Feature Transform ,尺度不变特征变换,是检测图像中具有唯一性.对图像平移.旋转.缩放.甚至仿射变换(如从不同角度拍摄图片)保持不变性 ...

  3. 图解KMP字符串匹配算法+代码实现

    kmp算法跟之前讲的bm算法思想有一定的相似性.之前提到过,bm算法中有个好后缀的概念,而在kmp中有个好前缀的概念,什么是好前缀,我们先来看下面这个例子. 观察上面这个例子,已经匹配的abcde称为 ...

  4. 【图像处理】基于OpenCV底层实现的直方图匹配

    image processing 系列: [图像处理]图片旋转 [图像处理]高斯滤波.中值滤波.均值滤波 直方图匹配算法.又称直方图规定化.简单说.就是依据某函数.或者另外一张图片的引导,使得原图改变 ...

  5. 数字图像处理作业使用OpenCV - 自定义直方图

    第二次作业需要打印出来灰度直方图,当然不能使用ocv的自带calcHist函数来得到Mat对象了……结果上网搜索怎么用自己的数据创建直方图,搜到的都是直接用函数的_(:з」∠)_ 结果这个地方拖了好久 ...

  6. Oracle直方图的详细解析

    yuanwen:http://blog.csdn.net/javacoffe/article/details/5578206 Oracle直方图解析 一.    何谓直方图: 直方图是一种统计学上的工 ...

  7. Oracle直方图的详细解析(转)

    Oracle直方图解析 一.    何谓直方图: 直方图是一种统计学上的工具,并非Oracle专有.通常用于对被管理对象的某个方面的质量情况进行管理,通常情况下它会表现为一种几何图形表,这个图形表是根 ...

  8. OpenCV-跟我一起学数字图像处理之直方图均衡化

    从这篇博文开始,小生正式从一个毫不相干专业转投数字图像处理.废话不多说了,talk is cheap. show me the code. 直方图均衡化目的 由于一些图像灰度的分布过于集中,这样会导致 ...

  9. OpenCV学习(24) 直方图(1)

    直方图是对数据的统计,并将统计结果分布于一系列预定义的槽中.这里的数据不仅仅指的是灰度值,它可以是任何能有效描述图像特征的数据,比如图像梯度等等. 假设有一个矩阵包含一张图像的信息 (灰度值 0-25 ...

随机推荐

  1. Oracle百问百答(二)

    Oracle百问百答(二) 11. nvl函数有什么用? NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值,否则 ...

  2. [HDU 1358]Period[kmp求周期]

    题意: 每一个power前缀的周期数(>1). 思路: kmp的next. 每一个前缀都询问一遍. #include <cstring> #include <cstdio> ...

  3. OFBIZ分享:利用Nginx +Memcached架设高性能的服务

    近年来利用Nginx和Memcached来提高站点的服务性能的作法,如一夜春风般的遍及大江南北,越来越多的门户站点和电子商务平台都採用它们来为自己的用户提供更好的服务体验.如:网易.淘宝.京东.凡客等 ...

  4. hdu4722之简单数位dp

    Good Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  5. 基于visual Studio2013解决C语言竞赛题之1047百马问题

      题目 解决代码及点评 /* 47.马百瓦问题.有100匹马,100块瓦,大马驮3块, 小马驮2块,两个马驹驮1块.问大马.小马.马驹各多少? 要求:① 不许用for循环; ② 循环次数 ...

  6. hadoop部署、启动全套过程

    Hadoop是Apache基金会的开源项目,为开发者提供了一个分布式系统的基础架构,用户可以在不了解分布式系统的底层细节的情况下开发分布式的应用,充分利用集群的强大功能,实现高速运算和存储.Hadoo ...

  7. 有N个正实数(注意是实数,大小升序排列) x1 , x2 ... xN,另有一个实数M。 需要选出若干个x,使这几个x的和与 M 最接近。 请描述实现算法,并指出算法复杂度

    题目:有N个正实数(注意是实数,大小升序排列) x1 , x2 ... xN,另有一个实数M. 需要选出若干个x,使这几个x的和与 M 最接近. 请描述实现算法,并指出算法复杂度. 代码如下: #in ...

  8. Restful 和 Jersey介绍(Web Service )

    一:REST简单介绍 REST 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之中的一个. REST 中最重要的概念是资源(reso ...

  9. Linux下编译Qt源码,一定要下载tar.gz版本,否则会报权限不足

    首先下载qt-everywhere-opensource-src-4.8.1源码,下载地址: ftp://ftp.qt-project.org/qt/source/ 在Linux下编译一定要下载qt- ...

  10. Cordys BOP 4平台开发入门实战演练——Webservices开发(0基础)

    0.文章导读 本文档针对Cordys BOP-4 WS-AppServer基础功能进行验证和高速开发指导.(高级实践文档请參考兴许文档). 0.1.WS-AppServer概述 WS-AppServe ...