自适应直方图均衡化

2024-08-27 19:32
文章标签 适应 直方图 均衡化

本文主要是介绍自适应直方图均衡化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简述

自适应直方图均衡化(AHE)用来提升图像的对比度的一种计算机图像处理技术。和普通的直方图均衡算法不同,AHE算法通过计算图像的局部直方图,然后重新分布亮度来改变图像对比度。因此,该算法更适合于改进图像的局部对比度以及获得更多的图像细节

算法思想(下面看不懂,请先了解直方图均衡化)

移动模板W在图像A上逐行移动,并且模板W的中心c(x0,y0)对应图像上的点f(x0,y0);计算模板W区域的直方图均衡化变化关系:g(x,y)= T(f(x,y),计算模板中心点c(x0,y0)的均衡化对应像素值:g(x0,y0) = T(f(x0,y0))。用g(x0,y0)替代f(x0,y0);逐行计算得到整幅图像的自适应直方图均衡化图像。

我的理解:就是在一个给定框内做直方图均衡化,而框内所有处理(包括均衡化)只为了这个将原始中心点像素a变化到新的像素点b。

算法实现

function [ output_img ] = my_AHE( input_img, w)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
%   自适应直方图均衡化
%   输入:input_img:待处理图像
%        w: 局部处理的窗口大小[height,width,channels]=size(input_img);if channels==1src = inpit_img;
elsesrc = rgb2gray(input_img);
end%1.图像边界扩展
padsize=[(w-1)/2,(w-1)/2];
padSrc = padarray(src,padsize,'symmetric','both');%2.循环求解每个区域对应的值
output_img = zeros(height,width);
iter = 0;
for i=1:heightfor j=1:widthslideWindow = zeros(w,w);slideWindow = padSrc(i:i+w-1,j:j+w-1);AHE_piexl = my_AHE_piexl(slideWindow,src(i,j));output_img(i,j) = AHE_piexl;iter = iter+1;disp(iter);end
endoutput_img = uint8(output_img);endfunction [ outPiexl ] = my_AHE_piexl( window,inPiexl )
%UNTITLED2 Summary of this function goes here
%   Detailed explanation goes here
%   计算局部图像的直方图均衡化的像素对应值
%   输入:window: 局部图像
%        inPiexl:输入像素
%        outPiexl:输出像素[height,width]=size(window);%1.像素灰度统计
NumPixel = zeros(1,256);
for i=1:heightfor j=1:widthgrayValue = window(i,j);NumPixel(1,grayValue+1) = NumPixel(1,grayValue+1)+1;end
end%2.计算灰度分布密度
ProbPixel = zeros(1,256);  
for k=1:256ProbPixel(1,k)=NumPixel(1,k)/(height*width*1.0);
end%3.计算累积分布密度
CumuPixel = zeros(1,256);  
CumuPixel(1,1) = ProbPixel(1,1);
for l=2:256CumuPixel(1,l) = CumuPixel(1,l-1)+ProbPixel(1,l);    
end
CumuPixel = uint8(255 .* CumuPixel + 0.5); %取整数%4.计算灰度值映射
outPiexl = CumuPixel(inPiexl);end

 

这篇关于自适应直方图均衡化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112573

相关文章

240907-Gradio插入Mermaid流程图并自适应浏览器高度

A. 最终效果 B. 示例代码 import gradio as grmermaid_code = """<iframe srcdoc='<!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width" /><title>My static Spa

安卓实现弹出软键盘屏幕自适应调整

今天,我通过尝试诸多方法,最终实现了软键盘弹出屏幕的自适应。      其实,一开始我想通过EditText的事件来实现,后来发现,安卓自带的函数十分强大,只需几行代码,便可实现。实现如下:     在Manifest中设置activity的属性:android:windowSoftInputMode="adjustUnspecified|stateHidden|adjustResi

UGUI 背景自适应文本框

需求 UGUI背景自适应文本框UGUI背景图片随文本框长度变化 解决方案 仅文本框宽度自适应 背景节点配置: 背景节点下的Text子节点配置: 文本框宽高自适应 将Vertical Fit设置为Preferred Size 将Child Controls Size Height选项勾上

Openharmony 图片自适应全屏显示

前言: Deveco_studio 4.1 release 版本 我们想要图片全屏显示,并且不出现黑白边,可以参考以下代码 这段代码会自适应你的容器大小,你的容器时全屏,图片就会全屏 @Entry@Componentstruct Index {@State message: string = 'Hello World';build() {Column() {}.width('100%'

Cocos2d-x自适应Android屏幕分辨

ndroid下分辨率太多,不太可能为每种分辨率做一套资源,目前一般来说比较流行的是320*480, 800*400, 854*400。当然现在720P的也出来了,但至少目前不是主流机型^_^. 对于不支持的分辨率,我希望的是能够按照屏幕大小按比例缩放,即有了下面的代码。 1:ViewAutoScale 写了一个ViewAutoScale函数,如下:   #include "ViewAuto

有无直方图,性能的差距

################################# ###有无直方图,性能的差距### ################################# 实验的环境在redhat平台下的11gr2单实例环境 1、在自己定义的用户下创建表及索引 CREATE TABLE customers AS SELECT * FROM sh.customers; CREATE INDEX cu

CUDA:用并行计算的方法对图像进行直方图均衡处理

(一)目的 将所学算法运用于图像处理中。 (二)内容 用并行计算的方法对图像进行直方图均衡处理。 要求: 利用直方图均衡算法处理lena_salt图像 版本1:CPU实现 版本2:GPU实现  实验步骤一 软件设计分析: 数据类型: 根据实验要求,本实验的数据类型为一个256*256*8的整型矩阵,其中元素的值为256*256个0-255的灰度值。 存储方式: 图像在内存中

图像处理:基于直方图矫正的图像色彩均衡

from itertools import chainimport cv2import osimport numpy as npimport datetimeclass BrightnessBalance:def __init__(self):passdef arrayToHist(self,gray):'''计算灰度直方图,并归一化:param gray_path::return:'''

【TPAMI 2024】单源领域自适应不可行,要做就做多源领域的,这样才酷!

Graphical Modeling for Multi-Source Domain Adaptation 题目:多源领域适应的图形建模 作者:Minghao Xu; Hang Wang; Bingbing Ni 摘要 多源领域自适应(MSDA)专注于将来自多个源领域的知识转移到目标领域,与常规的单源领域自适应相比,这是一个更实际且具有挑战性的问题。在这个问题中,对多个源领域和目标领域

python画图|并列直方图绘制

前述学习过程中,已经知晓普通直方图绘制和堆叠直方图绘制,参考链接如下: 西猫雷婶-CSDN博客 有时候,我们还会遇到并列直方图绘制的需求,今天就探索一下。 【1】官网教程 按照惯例,我们先来到官网: https://matplotlib.org/stable/gallery/lines_bars_and_markers/barchart.html#sphx-glr-gallery-lin