直方图均衡的C++实现

直方图均衡的C++实现方法 直方图均衡的C++实现方法 一. 原理 灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数,即h(k)=nk(k=0,1,⋯ ,L−1)h(k)=n_k\quad (k=0,1,\cdots,L-1)h(k)=nk​(k=0,1,⋯,L−1),其中LLL为图像的灰度级数。 直方图均衡的目的是将图像的直方图修正为均匀分布形式(离散分布做不到完全均匀,但可以接近),增加像素灰度值的动态范... 阅读详情

选用400*400的yuv灰度图像,如下图所示,对其进行直方图均衡。
在这里插入图片描述

代码如下:

#include <iostream>
#include <fstream>
using namespace std;
int accurNum[256];
double sum[256];
int map[256];
int main()
{
    int height = 500, weight = 500;
    ifstream in("seed.yuv", ios::binary);
    unsigned char* yBuffer, *uBuffer, *vBuffer;
    int size = height * weight;
    yBuffer = new unsigned char[size];
    uBuffer = new unsigned char[size];
    vBuffer = new unsigned char[size];
    in.read((char*)yBuffer,size);
    in.read((char*)uBuffer,size);
    in.read((char*)vBuffer,size);

    for( int i = 0; i < size; ++ i ) accurNum[yBuffer[i]] ++;
    for( int i = 0; i < 256; ++ i )
    {
        if(!i) sum[i] = accurNum[i];
        else sum[i] = sum[i -1] + accurNum[i];
    }
    for( int i = 0; i < 256; ++ i )
    {
        sum[i] /= size;
        map[i] = int((255) * sum[i] + 0.5);

    }
    for( int i = 0; i < size; ++ i )
    {
        yBuffer[i] = map[yBuffer[i]];
    }
    in.close();
    ofstream out("processed_seed.yuv", ios::binary );
    out.write((char*)yBuffer, size);
    out.write((char*)uBuffer, size);
    out.write((char*)vBuffer, size);
    out.close();
}

结果如下:
在这里插入图片描述

直方图、直方图均衡化的计算和显示——数字图像处理学习二(C++版) 1、直方图计算 如图位灰度图,灰度范围为0-3,则 共4*4=16个像素 灰度范围i=[0,3] 灰度0:V0=3/16 灰度1:V1=5/16 灰度2:V2=4/16 灰度3:V3=4/16 直方图为: 2、RGB直方图 与灰度图直方图同理,分别计算每个像素三个分量RGB的256个灰度值,可以绘制成3个直方图 例子:待编辑 ... 阅读详情

相关推荐

使用C++实现彩色图像直方图均衡化的三种方法

引言 本文主要介绍如何实现彩色图像的直方图均衡化,达到图像增强效果的三种方法: 1. 对RGB三个通道图像分别进行直方图均衡化,然后再合并三个通道; 2. 提取RGB三个通道图像,计算其平均直方图结果,然后再进行均衡化; 3. RGB空间转为HSI空间图像,对I(亮度,Intensity)通道进行直方图均衡化,再转为RGB图像。 第一种方法不推荐,会破坏色彩结构;根据情况选择第2,3种方...

湫一 7377

直方图均衡化原理及C++实现

直方图均衡化是常用的图像增强的方法。通过一种映射改变图像中的灰度值,增加图像灰度值的动态范围从而增加图像的对比度。过度曝光的图像中的灰度值主要集中在高亮度的范围内,而曝光不足的图像中的灰度值主要集中在低亮度的范围内。使用直方图均衡化技术可以使得整幅图像的灰度值均匀分布在整个动态范围,从而增加图像的对比度,提升视觉观感。 1、直方图的基本概念 首先介绍一下直方图的基本概念,直方图是对图像像素值的统计,一般像素值的范围为0~255;直方图是对各个不同灰度值的像素进行统计,下面是一张直方图。 下面 下面是几种图像

shentu7的博客 6751

直方图均衡化—C++代码实现

本文主要介绍了基于直方图均衡化的图像增强方法,以及C++代码实现,也给出了相关的论文,供阅读参考

我的博客 2835

c++实现直方图均衡化

根据累积直方图调整原始图像的像素值。首先,我们选择一副较暗或者较量的图,对其进行直方图均衡化处理,首先我们先画一下下图的灰度直方图,可以看到图像整体亮度偏低,因此灰度级应该分布在较低的地方,没有充分利用到亮区的信息。直方图均衡化是一种用于图像增强的方法,通过调整图像的像素值分布,使得图像的对比度更好,细节更加显著。直方图均衡化能够扩展图像的动态范围,使得图像中的像素值更均匀分布,从而提高图像的视觉效果和质量。将灰度直方图归一化,将每个灰度级别出现的像素数量除以总像素数量,得到归一化后的直方图。

mapleleaf2的博客 1373

直方图均衡化C++实现

直方图均衡化今天是第一次写博客~最近在学习数字图像处理和opencv,学习到直方图均衡化,想去人家博客上找找数学原理和实现代码。虽然有关直方图均衡化的原理博客还是蛮多的,但是实现代码的话我本人只找到了matlab版,所以我撸了个C++版的代码(刚刚学编程,写的很丑,运行时间也比调库长一些,不过最后还是实现了~~),希望能对刚刚入门opencv的朋友有点帮助。直方图均衡化处理的“中心思想”是把原始图...

Bright_fighting的博客 1967

C++实现直方图均衡化与颜色迁移

颜色空间是描述颜色的一组坐标系统,对于图像处理来说是一个核心概念。颜色空间转换是指将图像从一个颜色空间转换到另一个颜色空间的过程。常见的颜色空间包括RGB颜色空间、HSV颜色空间和YUV颜色空间等。转换颜色空间的原因有很多,最常见的是为了在不同的颜色空间中更容易地提取颜色特征,例如,人眼感知颜色的方式是通过色调、饱和度和亮度来描述的,这在HSV颜色空间中更容易实现。而计算机处理图像通常使用RGB颜色空间,因为它与计算机显示器的色彩表示方式直接相关。

weixin_30591519的博客 414

图像处理之直方图均衡化及C++实现

1. 背景 直方图均衡化在图像增强方面有着很重要的应用。一些拍摄得到的图片,我们从其直方图可以看出,它的分布是集中于某些灰度区间,这导致人在视觉上感觉这张图的对比度不高。所以,对于这类图像,我们可以通过直方图均衡技术,将图像的灰度分布变得较为均匀,从而使得图像对比度增大,视觉效果更佳。 2. 原理 直方图均衡化的作用是图像增强。 有两个问题比较难懂,一是为什么要选用累积分布函数,二是为什么使用累积分布函数处理后像素值会均匀分布。 第一个问题。均衡化过程中,必须要保证两个条件:①像素无论怎么映射,一定要保.

程序员深度学习 5695

图像直方图均衡化C++实现

数字图像处理课程,直方图均衡化C++代码的实现

直方图均衡 视觉显著_直方图均衡化C++实现

直方图均衡化在图像增强方面有着很重要的应用。一些拍摄得到的图片,我们从其直方图可以看出,它的分布是集中于某些灰度区间,这导致人在视觉上感觉这张图的对比度不高。所以,对于这类图像,我们可以通过直方图均衡技术,将图像的灰度分布变得较为均匀,从而使得图像对比度增大,视觉效果更佳。直方图均衡化的代码实现有以下几个步骤:遍历全图,先统计每个灰度级下的像素点个数(为此我们开辟了256大小的数组);计算每个灰度...

weixin_36150766的博客 217

直方图均衡化C++代码

直方图均衡化C++代码

直方图均衡C++程序

使用VC++利用直方图对图像进行均衡化的源代码

用C++写个函数实现灰度图均衡化以及用C++显示灰度直方图

https://www.cnblogs.com/skyfsm/p/7767043.html 用C++写个函数实现灰度图均衡化以及用C++显示灰度直方图。 1、灰度图均衡化 直方图均衡化在图像增强方面有着很重要的应用。一些拍摄得到的图片,我们从其直方图可以看出,它的分布是集中于某些灰度区间,这导致人在视觉上感觉这张图的对比度不高。所以,对于这类图像,我们可以通过直方图均衡技术,将图像的灰度...

weixin_41889723的博客 2746

直方图均衡化 c++

直方图均衡化   图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法。直方图拉伸是通过对比度拉伸对直方图进行调整,从而“扩大”前景和背景灰度的差别,以达到增强对比度的目的,这种方法可以利用线性或非线性的方法来实现;直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。   直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。   缺点:   1)变换后图像的灰度级减少,某些细节消失;   2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。

数字图像处理:直方图均衡化代码实现-C++

是一种常用的图像增强技术,通过调整图像的灰度分布,使得图像的对比度得到增强。以下是使用 C++ 和 OpenCV 实现数字图像直方图均衡化的完整代码和详细说明。

qq_56921730的博客 698

图像直方图均衡算法的实现 bmp格式 c++

考查结构体、文件读写、简单的图像处理算法 从bmp文件(如灰度图像woman.bmp、彩色图像lenna.bmp)读入图像数据 对图像数据进行均衡处理 将均衡处理后的图像数据保存为新的bmp文件 要求编程只使用C语言自带库 功能 必做功能1:灰度图像的直方图均衡 必做功能2:彩色图像的直方图均衡

Android自动化新方案:ESP32-C3蓝牙HID模拟触控与手势操作实战(附源码)

本文详细介绍了使用ESP32-C3通过蓝牙HID协议实现Android设备自动化操作的完整方案。该硬件方案成本低廉且能完美规避系统风控,可模拟鼠标移动、点击及复杂手势操作,延迟低于50毫秒,适用于游戏连招和应用测试等场景。文章包含完整的源码实现和性能优化技巧。

kotlin6android的博客 377

直方图均衡化算法原理与c++实现

直方图均衡是图像增强的基础算法,本质上是一种非线性拉伸,使图像的灰度级分布变得较为均匀,从而增强图像的对比度,使这些不够明显的图像细节清晰可见。掌握一种算法,必须要弄清楚它的优势和缺点,要知道它的适用场合,这样才能灵活的运用这些算法。直方图均衡算法的优势:对于背景和前景都太亮或者太暗的图像非常有用,计算量不大,完全可以满足实时。直方图均衡算法的缺点:它也有缺陷,它对数据的处理是不加选择的,也就是说,它可能会增加背景噪声的对比度并且降低有用信号的对比度。上式就被称为直方图均衡化。

生活需要深度 640

常见机械臂模型不用找!Mujoco这儿都有!

高质量的模型集合,franka panda,so-arm100,ur之类的机械臂都有。常见机械臂模型不用找!Mujoco这儿都有!大概346M,网速不行的可以下载zip。

darcsdn 992

C++实现直方图均衡,附源代码

目录接口设计运行结果源代码 接口设计 //直方图均衡化函数定义 static BOOL histeq(CImageDataset &imgIn, CImageDataset &imgOut); 运行结果 源代码 //计算直方图函数 void CImageProcessingEx::getHist(const CImageDataset& img,int band,std::vector<int>& hist) { int value; int N_ro

qq_20115319的博客 2090

MOSFET导通电阻Rdson全解析:物理组成、公式推导与工程选型要点

在功率电子设计中,MOSFET作为核心开关器件,其导通电阻Rdson直接决定导通损耗与系统效率。从半导体物理角度看,Rdson并非单一固定值,而是由源极电阻、沟道电阻、累积层电阻、JFET区电阻、漂移区电阻及衬底电阻等多个分量串联而成,并随栅极驱动电压、结温以及击穿电压等级发生显著变化。理解Rdson的物理来源与数学表达,有助于工程师在低压大电流与高压小电流等不同场景中合理选型、优化驱动电压并准确估算热损耗。文章从沟道电阻公式出发,深入剖析耐压与导通电阻的物理矛盾、温度系数的影响规律,并给出数据手册参数的正

weixin_29163857的博客 195

基于DO-178C/331的飞控软件研发环境的研究

本研究提出了一套基于DO-178C/331标准的飞控系统软件开发和验证框架。通过优化模型库的设计、代码生成配置和测试验证流程,显著提升了飞控系统软件的开发效率和安全性。未来的研究可以进一步扩展模型库的功能,以适应更复杂的飞控系统需求。

qq_41854911的博客 561
上一篇: LZ77算法原理及python实现
下一篇: zlib数据格式分析(RFC-1950)
Cross_Entropy
博客等级 码龄7年 69粉丝 45原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值