首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >matlab / python中的局部直方图均衡

matlab / python中的局部直方图均衡
EN

Stack Overflow用户
提问于 2017-03-24 22:55:32
回答 2查看 2.8K关注 0票数 2

我是matlab中的新手。我想编写本地直方图均衡化的代码。我已经为全局直方图均衡编写了代码,我知道局部均衡意味着对图像的每个部分进行均衡,但我的问题是我应该如何选择图像的这一部分?例如,我是否应该对与其他像素分离的每100个像素进行均衡化?换句话说,我如何将图像分割成某些部分,然后对每个部分进行均衡?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-24 23:39:18

最天真的方法是将图像分割成不重叠的块,在该块上执行全局直方图代码并将其保存到输出中。假设您将这些不重叠块的行和列定义为变量rowscols。在您的例子中,假设是100x100,所以是rows = 100; cols = 100;。您可以简单地遍历每个不重叠的块,进行直方图均衡化,然后将其设置为输出中的相同位置。

如下所示,假设您的图像存储在im

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rows = 100;
cols = 100;
out = zeros(size(im)); % Declare output variable

for ii = 1 : rows : size(im, 1)
    for jj = 1 : cols : size(im, 2)
        % Get the block
        row_begin = ii;
        row_end = min(size(im, 1), ii + rows);
        col_begin = jj;
        col_end = min(size(im, 2), jj + cols);
        blk = im(row_begin : row_end, col_begin : col_end, :);
        % Perform histogram equalization with the block stored in blk
        % ...

        % Assume the output of this is stored in O
        out(row_begin : row_end, col_begin : col_end, :) = O;
    end
end

请注意存储不重叠块的变量blk的复杂性。我们让开头的行和列只是循环计数器iijj,但是结尾的行和列必须确保它被图像的维数所限制。这就是为什么min电话在那里。否则,结束行和列只是由相应维度中的块的大小添加的开始行和列。还请注意,我已经使用:索引到第三维空间,以防你有一个彩色图像。灰度不应影响此代码。在将输出存储在输出映像中时,最终需要使用相同的索引。注意,我假设它存储在变量O中,这是您定制的直方图均衡器函数的输出。

输出out将包含本地直方图均衡化图像。请注意,理论上您可以使用图像处理工具箱中的blockproc (如果有)在一行中完成此操作。这将处理图像中的不同块,并对其应用一些功能。假设您的直方图均衡器函数称为hsteq,您只需这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rows = 100; cols = 100;
out = blockproc(im, [rows, cols], @(s) hsteq(s.data));

第一个输入是要处理的图像,第二个输入定义块大小,最后一个元素是要应用于每个块的函数。请注意,blockproc为您的函数提供了一个自定义的结构,因此重要的是提取结构中的data字段。这将产生与上面循环代码相同的输出。

票数 1
EN

Stack Overflow用户

发布于 2022-06-15 15:49:25

我们可以使用基于块的局部(自适应)直方图均衡化来实现AHE (如另一个答案中所建议的),但在这种情况下,我们需要实现类似双线性插值的技术,以防止窗口边缘的对比度突然发生变化,例如,观察下面与python实现相同的均衡化输出(这里为该窗口使用了一个50x50窗口):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def AHE(im, tile_x=8, tile_y=8):        
    h, w = im.shape
    out = np.zeros(im.shape) # Declare output variable

    for i in range(0, h, tile_x):
        for j in range(0, w, tile_y):
            # Get the block
            blk = im[i: min(i + tile_x, h), j: min(j + tile_y, w)]
            probs = get_distr(blk)
            out[i: min(i + tile_x, h), j: min(j + tile_y, w)] = CHE(blk, probs)
    return out

def CHE(im, probs):
    T = np.array(list(map(int, 255*np.cumsum(probs))))
    return T[im]

def get_distr(im):
   hist, _ = np.histogram(im.flatten(),256,[0,256])
   return hist / hist.sum()

我们可以从本论文实现AHE算法

算法的实现产生了更好的结果(没有边界伪影):

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43013492

复制
相关文章
基于matlab直方图均衡,matlab 直方图均衡实验报告.pdf「建议收藏」
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/02
3900
灰度直方图及直方图均衡化的MATLAB实现
文章和代码以及样例图片等相关资源,已经归档至【Github仓库:digital-image-processing-matlab】或者公众号【AIShareLab】回复 数字图像处理 也可获取。 文章目录 灰度直方图及直方图均衡化 目的 内容 1.直方图的显示 2.计算并绘制图像直方图 3.直方图均衡化 灰度直方图及直方图均衡化 目的 1.直方图的显示 2.计算并绘制图像直方图 3.直方图的均衡化 内容 灰度直方图用于显示图像的灰度值分布情况,是数字图像处理中最简单和最实用的工具。 MATLAB中提供了
timerring
2023/03/04
9240
直方图均衡化(Matlab实现)
直方图均衡化定义:通过某种灰度映射使输入图像转换为在每一灰度级上都有近似相同的像素点的输出图像(即输出的直方图是均匀的)。
全栈程序员站长
2022/11/01
6940
直方图均衡化及matlab实现
在处理图像时,偶尔会碰到图像的灰度级别集中在某个小范围内的问题,这时候图像很难看清楚。比如下图: 它的灰度级别,我们利用一个直方图可以看出来(横坐标从0到255,表示灰度级别,纵坐标表示每个灰度级别的
chenjx85
2018/05/21
2.3K0
matlab直方图均衡化代码各种方法_数据直方图matlab代码
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183730.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
8210
matlab中直方图的定义_matlab绘制直方图
格式(2) ,J 返回调色板为map 的图像I 的直方图;对格式(3) ,返回图像I 的每个灰度上的像素点数目;格式(4) 对图
全栈程序员站长
2022/11/04
7290
OpenCV—python 颜色直方图与直方图均衡化[通俗易懂]
cv2.calcHist(image,channels,mask,histSize,ranges) -> list
全栈程序员站长
2022/09/27
3.4K0
[图像]图像灰度均衡化和灰度直方图(Matlab实现)
原文链接:http://blog.csdn.net/humanking7/article/details/46822709
祥知道
2020/03/10
1.7K0
matlab画对数直方图,matlab中函数bar绘制直方图「建议收藏」
matlab中函数bar绘制直方图中的应用函数bar(x)可以绘制直方图,这对统计或者数据采集非常直观实用。它共有四种形式:
全栈程序员站长
2022/11/07
1.4K0
matlab画对数直方图,matlab中函数bar绘制直方图「建议收藏」
【16位RAW图像处理三】直方图均衡化及局部直方图均衡用于16位图像的细节增强。
通常我们生活中遇到的图像,无论是jpg、还是png或者bmp格式,一般都是8位的(每个通道的像素值范围是0-255),但是随着一些硬件的发展,在很多行业比如医疗、红外、航拍等一些场景下,拥有更宽的量化范围的图像也越来越常见,比如10位(带宽1024)、12位(带宽4096)、14位(带宽16384)以及16位(带宽32768)的图像,当然还有以浮点数保存的高动态图像(hdr格式的那种),但是目前大部分的显示器还是只支持8位图像的显示,因此,对于这一类图像,一个很重要的问题就是如何将他们的数据量化到0到255之间,而且尽量的保留更多的细节信息,这也就是常见的HDR到LDR的过程。 在我前面的博客里其实也有讲到这方面的信息,本文再尝试将直方图均衡化引入到这个过程中。
用户1138785
2021/07/27
1.6K0
python实现图像的直方图均衡化
直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过重新分配图像中的像素值,使得图像的像素值分布更加均匀,增强图像的对比度,从而改善图像的视觉效果。
叶茂林
2023/10/19
8630
python实现图像的直方图均衡化
Matlab 直方图_matlab分析
bar(Y) bar(x,Y) bar(…,width) bar(…,’style’) bar(…,’bar_color’) bar(axes_handle,…) h = bar(…) hpatches = bar(‘v6’,…)
全栈程序员站长
2022/11/02
1.3K0
图像直方图与直方图均衡化
图像的直方图用来表征该图像像素值的分布情况。用一定数目的小区间(bin)来指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目。
fengzhizi715
2018/08/24
1.6K0
图像直方图与直方图均衡化
openCV—图像直方图及其直方图均衡化
一、函数简介 1、calcHist—计算图像直方图 函数原型:calcHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None) images:图像矩阵,例如:[image] channels:通道数,例如:0 mask:掩膜,一般为:None histSize:直方图大小,一般等于灰度级数 ranges:横轴范围 2、equalizeHist—直方图均衡化 函数原型: equalizeHist(src,
bear_fish
2018/09/19
1.5K0
openCV—图像直方图及其直方图均衡化
matlab直方图绘制[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/02
9660
matlab直方图绘制[通俗易懂]
颜色直方图均衡化
算法:颜色直方图均衡化是在许多图像检索系统中被广泛采用的颜色特征,会出现色彩失真。
裴来凡
2022/05/28
4420
颜色直方图均衡化
直方图均衡化处理
直方图均衡化方法属于图像增强的范畴,是一种对图像进行灰度级修正的方法。简而言之,就是对一个灰度图像进行处理,使他的特征更加明显。通常情况下,在对图像进行进一步的处理之前,直方图均衡化是一种对灰度进行归一化处理的好方法,而且也可以增强图像的对比度。
mythsman
2022/11/14
2230
直方图均衡化处理
掩模直方图均衡化
算法:掩模图像,也称掩膜图像,借鉴于PCB制版过程,似一块玻璃板,玻璃板上白色区域是透明的,黑色区域是不透明的。掩膜有方形掩膜和圆形掩膜等。掩模运算是将该玻璃板覆盖在原始图像透过玻璃板显示出来的部分就是掩模运算的结果图像。掩膜图像应用在感兴趣区、图像屏蔽、图像合成、结构特征提取、特殊形状图像提取等领域。
裴来凡
2022/05/28
3540
掩模直方图均衡化
图像的灰度直方图、直方图均衡化、直方图规定化(匹配)
一幅图像由不同灰度值的像素组成,图像中灰度的分布情况是该图像的一个重要特征。图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所占的多少。
233333
2020/11/11
5.6K0
图像的灰度直方图、直方图均衡化、直方图规定化(匹配)
直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理
图像的灰度直方图就描述了图像中灰度分布情况, 能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数, 描述的是图像中具有该灰度级的像素的个数: 其中, 横坐标是灰度级, 纵坐标是该灰度级出现的率。如下图所示
全栈程序员站长
2022/09/27
4.6K0
直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理

相似问题

局部直方图均衡

10

手动局部直方图均衡

11

GIF图像的MATLAB直方图均衡化

11

基于MATLAB的非图像直方图均衡

11

MATLAB中直方图均衡化的帮助

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文