灰度直方算法 C++
#include <string>
#include "20140318计算类的面积.cpp" //////////////////////////////////////////////////////////////////////////
// 函数名称: histeq()
// 传入参数:
// BYTE*dstData 传入灰度图像内存空间的指针
// double *srcArray 模版的直方图累积,并进行归一化,大小为256
// int m_Width 匹配内存空间的宽度
// int m_Height 匹配内存空间的高度
// int m_pitch 匹配内存空间的每行所在内存大小
//////////////////////////////////////////////////////////////////////// void histeq(int **dstData, double *srcArray,int m_Width,int m_Height,int m_pitch)
{
//void *memset(void *s,int c,size_t n)将已开辟内存空间 s 的首 n 个字节的值设为值 c
m_pitch=sizeof(data[][])*nXSize;
double dstHist[];
memset(dstHist,, * sizeof(double));
double dstArray[];
memset(dstArray,, * sizeof(double));
int i=,j=;
//统计直方图
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;//m_Bytes初始化为像素总个数
dstArray[] = dstHist[];//第一个初始化为dstHist[0]=0
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 = ;
float mapPixel[];//每个颜色的value
memset(mapPixel,, * sizeof(float)); 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] = (float) k;
}
break;
}
mapPixel[i] = (float) k;
}
//目标图像查找索引表
for (i = ;i < m_Height;i++)
{
for (j = ;j < m_Width;j++)
{
dstData[i * m_pitch + j] = mapPixel[(int)dstData[i * m_pitch + j]];
}
}
}
灰度直方算法 C++的更多相关文章
- 基于FPGA的HDTV视频图像灰度直方图统计算法设计
随着HDTV的普及,以LCD-TV为主的高清数字电视逐渐进入蓬勃发展时期.与传统CRT电视不同的是,这些高清数字电视需要较复杂的视频处理电路来驱动,比如:模数转换(A/D Converter).去隔行 ...
- 对OpenCV直方图的数据结构CvHistogram的理解
前几天被OpenCV的直方图的数据结构CvHistogram弄得很纠结.上网一搜,也没什么相关的资料.现在有点头绪了,就写点东西,让后面的人好走一些吧. 先来看看CvHistogram的定义: typ ...
- [EmguCV|WinForm] 使用EmguCV內建直方圖工具繪製直方圖(Histogram)-直方圖(Histogram)系列 (1)
https://dotblogs.com.tw/v6610688/archive/2013/12/20/emgucv_draw_histogram_histogrambox_histogramview ...
- matplotlib学习日记(四)-绘制直方统计图形
(一)柱状图-应用在定性数据的可视化场景或者离散型数据,条形图和柱状图相似,只不过是函数barh import matplotlib as mpl import matplotlib.pyplot a ...
- R语言与医学统计图形-【14】ggplot2几何对象之直方密度图
ggplot2绘图系统--几何对象之直方图.密度图 1.直方图 参数. geom_histogram(mapping = , data = , stat = 'bin', #统计变换,概率密度为den ...
- Opencv——彩色图像灰度化的三种算法
为了加快处理速度在图像处理算法中,往往需要把彩色图像转换为灰度图像.24为彩色图像每个像素用3个字节表示,每个字节对应着RGB分量的亮度. 当RGB分量值不同时,表现为彩色图像:当RGB分量相同时,变 ...
- 深入学习OpenCV中图像灰度化原理,图像相似度的算法
最近一段时间学习并做的都是对图像进行处理,其实自己也是新手,各种尝试,所以我这个门外汉想总结一下自己学习的东西,图像处理的流程.但是动起笔来想总结,一下却不知道自己要写什么,那就把自己做过的相似图片搜 ...
- OpenCV特征点检测算法对比
识别算法概述: SIFT/SURF基于灰度图, 一.首先建立图像金字塔,形成三维的图像空间,通过Hessian矩阵获取每一层的局部极大值,然后进行在极值点周围26个点进行NMS,从而得到粗略的特征点, ...
- Opencv之LBP特征(算法)
LBP(Local Binary Pattern),即局部二进制模式,对一个像素点以半径r画一个圈,在圈上取K个点(一般为8),这K个点的值(像素值大于中心点为1,否则为0)组成K位二进制数.此即局部 ...
随机推荐
- Android6.0动态权限申请步骤以及需要注意的一些坑
因为工作需要,简单研究了一下Android6.0权限申请,在Google提供的sample的基础上,写了一个简单的demo.算是自己的笔记吧,可能会比较混乱,主要是方便以后查看.后期有别的问题,随时更 ...
- php-工厂模式(转)
针对自己的不足与加深php的认识,选择用php来研究各种设计模式. 今天就看了设计模式的介绍,并学习了工厂模式,因为工厂模式比较简单,也比较常用.工厂模式的最主要作用就是对象创建的封装.简化创建对象操 ...
- Javascript禁止子元素继承父元素的事件
3种方法1.在父元素事件的function中加if(event.target==this){ }2.子元素事件function最后加event.stopPropgation():// 阻止事件冒泡3. ...
- 通过百度地图API将百度坐标转换成GPS经纬度
百度地图API链接:http://developer.baidu.com/map/index.php?title=webapi/guide/changeposition 百度地图API中,有GPS坐标 ...
- QWT6.0.1+win7下安装说明
A) 简介 1.QWT是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或 ...
- Qt 静态编译的问题.
编译参数 configure -confirm-license -opensource -developer-build -static -prefix D:\libraries\Qt5.3.1s - ...
- Design Mode 之 创建模式
A.创建模式 首先,简单工厂模式不属于24种涉及模式. A0.简单工厂模式 简单工厂模式,分为三种:普通简单工厂.多方法简单工厂.静态方法简单工厂. A01.普通 就是建立一个工厂类,对实现了同一接口 ...
- 【Mood-12】Android开发相关书籍推荐
新年伊始,找到Android进阶干货若干,2015拜读. 1.Android应用UI设计模式 目前,谷歌Android操作系统在移动市场中风头正劲,并且未来发展势不可挡.<Android应用UI ...
- 整合iis+tomcat
目的: 将 Tomcat与 IIS整合在一起,共用 80端口.让 iis可以解析 *.asp. *.aspx. *.jsp. servlet和 *.do文件: 第一步:准备工作. 在你的 Tomcat ...
- UITabBarItem编写的时候出现得图片显示异常,和有一些比较忽略的方法总结
我现在学到可分栏控制器,UITabBarController.我总结了它的层次有,UITabBarController控制并且只有以个UITanBat(他是一个UIIView的子类),UITabBar ...