//直方图均衡化	https://github.com/scutlzk
#include <opencv2\highgui\highgui.hpp>
#include <iostream>
#include<vector>
using namespace cv;
using namespace std; void Histogram_Equalization(const char *srcfilename, Mat *&dst)
{
double gray[256];
Mat src = imread(srcfilename, 0);
vector<uchar> array(src.rows*src.cols);
if (src.isContinuous()) { array.assign(src.datastart, src.dataend); } for (int i = 0; i < src.rows*src.cols; i++)++gray[array[i]]; for (int i = 0; i < 256; i++) {
gray[i] /= (src.rows*src.cols);
gray[i] = int(255 * gray[i] + 0.5);
if (i > 0)gray[i] = (gray[i] + gray[i - 1]);
} for (int i = 0; i < src.rows*src.cols; i++)array[i] = gray[array[i]]; dst=new Mat((int)src.rows, (int)src.cols, 0);
for (int i = 0; i < src.rows; i++)
for (int j = 0; j < src.cols; j++)
dst->at<uchar>(i, j) = array[i*src.cols + j]; namedWindow("src");
imshow("src", src);
namedWindow("dst");
imshow("dst", *dst);
waitKey(0);
return ;
}
int main(){
const char *filename = "123.jpg";//待处理文件名
Mat *dst;
Histogram_Equalization(filename, dst);
imwrite("dst.jpg", *dst);
}

  

vs2015+opencv3.3.1 实现 c++ 直方图均衡化的更多相关文章

  1. opencv 5 图像转换(3 重映射 仿射变换 直方图均衡化)

    重映射 实现重映射(remap函数) 基础示例程序:基本重映射 //---------------------------------[头文件.命名空间包含部分]------------------- ...

  2. 图解直方图均衡化及其Python实现

    在理解直方图均衡化的过程中,参考了一些书籍和博客,让人困惑的是,笔者对于直方图的理解还是停留在表面,并没有深入理解其内涵.因此,本文拟结合图片对直方图的概念进行阐述,并给出其Python实现,最后对她 ...

  3. win7下VS2015+opencv3.1.0配置

    由于opencv与vs的适配版本不同,本人在官网下载opencv3.1.0,其可以和VS2013.VS2015适配,文中以VS2015为例 opencv2.4.13-----vc11;vc12 ope ...

  4. MATLAB - 练习程序,直方图均衡化

    直方图均衡化的作用是图像增强. 有两个问题比较难懂,一是为什么要选用累积分布函数,二是为什么使用累积分布函数处理后像素值会均匀分布. 第一个问题.均衡化过程中,必须要保证两个条件:①像素无论怎么映射, ...

  5. opencv直方图均衡化

    #include <iostream> #include "highgui.h" #include "cv.h" #include "cx ...

  6. matlab 直方图均衡化

    原理: 直方图均衡化首先是一种灰度级变换的方法: 原来的灰度范围[r0,rk]变换到[s0,sk]变换函数为:s=T(r); 为便于实现,可以用查找表(look-up table)的方式存储,即:原始 ...

  7. opencv 彩色图像亮度、对比度调节 直方图均衡化

    直接上代码: #include <Windows.h> #include <iostream>// for stand I/O #include <string> ...

  8. 灰度图像--图像增强 直方图均衡化(Histogram equalization)

    灰度图像--图像增强 直方图均衡化(Histogram equalization) 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些 ...

  9. OpenCV-Python教程(10、直方图均衡化)

    相比C++而言,Python适合做原型.本系列的文章介绍如何在Python中用OpenCV图形库,以及与C++调用相应OpenCV函数的不同之处.这篇文章介绍在Python中使用OpenCV和NumP ...

随机推荐

  1. 表空间 -- tablespace

    表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空间中.但主要存放的是表, 所以称作表空间. Oracle数据库中至少存在一个表空间,即SYSTEM的表空间. ...

  2. 微信官方jssdk Demo

    1.html部分 <!DOCTYPE html> <!-- saved from url=(0028){sh:$selfUrl} --> <html><hea ...

  3. MFC学习(七) 单文档程序

    1 MFC单文档程序的主要类 (1)文档类(Document) 即应用程序处理的数据对象,文档一般从 MFC 中 CDocument 中派生.CDocument 类用于相应数据文件的读取以及存储 Cv ...

  4. nandflash裸机程序分析

    它包含7个文件: head.S init.c main.c Makefile nand.c nand.lds 我们之前的程序都是在nandflash的前4k放代码,上电后自动拷贝到SRAM中,之后将S ...

  5. 南京邮电大学网络攻防平台WEB题

    平台地址:http://ctf.nuptsast.com/ 签到题: 右键查看源代码,得到flag md5 collision: 传入的a的md5值要为0e开头的,但不能是QNKCDZO,百度一个0e ...

  6. 用Python语言设计GUI界面

    我们大家都编写过程序,但是如果能够设计一个GUI界面,会使程序增添一个很大的亮点!今天就让我们来用目前十分流行的python语言写出一个最基本的GUI,为日后设计更加漂亮的GUI打下基础. 工具/原料 ...

  7. day5心得

    import 模块 1.定义: 模块:用来从逻辑上组织python代码(变量.函数.类.逻辑:实现一个功能),本质就是.py结尾的python文件(文件名test.py 模块名:test) 2导入方法 ...

  8. Java微信公众平台开发(十一)--开发中微信公众平台/开放平台/商户平台的关联

    转自:http://www.cuiyongzhi.com/post/55.html 微信公众平台(map.weixin.qq.com)/开放平台(open.weixin.qq.com)/商户平台(pa ...

  9. OGG for sqlserver engryption && insert/delete

    OGG for sqlserver engryption && insert/delete 1. 源端操作 1.1 获取key 作为数据库用户密码加密 d:\GoldenGate\gg ...

  10. kibana-4.6.3-linux-x86_64.tar.gz的下载(图文详解)

    对于Kibana ,我们知道,是Elasticsearch/Logstash/Kibana的必不可少成员. 第一步:进入Elasticsearch的官网 https://www.elastic.co/ ...