加权 CDF 公式始终返回 1

问题描述

我正在阅读 this paper 以提高图像质量。
我的问题是,当我计算加权 CDF 时,我总是得到 1 作为输出。
这是公式序列:

formula 1

gamma 的定义如下:

enter image description here

其中 Cw 是加权 CDF:

enter image description here


enter image description here


我认为我的主要问题就在这里。

但为了更清楚,我也会添加其余的公式。
对应的加权直方图分布函数为:

enter image description here


Alpha=C(i) 其中:

enter image description here


enter image description here


其中 h_c(i) 是裁剪直方图,M 是总强度级别(我不确定 M 是什么,我假设因为 sum of Pi 应该是 {{1 }} 所以它必须是 1 )
这就是裁剪直方图的方式:

enter image description here

使用以下公式计算裁剪限制:

enter image description here

这是我的代码:

sum of the hc_i

正如我所说,CDF 输出始终为 1 ,因此增强图像始终为白色图像。正如我看到的这个公式,它的输出必须始终为 1。我在这里遗漏了什么吗?
我对 sample_img = imread('my image path'); sample_img = im2double(sample_img); L = 256 % The magnitude of each and every color channel is confined within the range [0,L-1] redChannel = sample_img(:,:,1); greenChannel = sample_img(:,2); blueChannel = sample_img(:,3); max_blue = max(max(blueChannel)); max_green = max(max(greenChannel)); max_red = max(max(redChannel)); min_blue = min(min(blueChannel)); min_green = min(min(greenChannel)); min_red = min(min(redChannel)); bn = blueChannel - min_blue; rn = redChannel - min_red; gn = greenChannel - min_green; max_bn = max(max(bn)); max_rn = max(max(rn)); max_gn = max(max(gn)); b_stretched = bn/max_bn; r_stretched = rn/max_rn; g_stretched = gn/max_gn; % Recombine separate color channels into an RGB image. rgb_stretched_Image = cat(3,r_stretched,g_stretched,b_stretched); % Convert RGB to HSI hsi_image = rgb2hsi(rgb_stretched_Image); intensity = hsi_image(:,3); figure() [counts,binLocations] = imhist(intensity); imhist(intensity); hist = counts; % the clipping limit is computed based on the mean value of the Tc = mean(hist); % histogram clipping length_hist = length(hist); clipped_hist = zeros(1,length_hist); for hist_id = 1:length_hist if hist(hist_id)<Tc disp('<Tc') disp(hist(hist_id)); clipped_hist(hist_id) = hist(hist_id); continue end disp('>Tc') clipped_hist(hist_id) = Tc; end % the corresponding PDF (p(i)) % this is where I just used sum(clipped_hist) instead of M Pi = clipped_hist / sum(clipped_hist); %CDF Ci = sum(Pi(1:L)); Alpha = Ci; %Weighted Histogram Distribution function Pmin = min(Pi); Pmax = max(Pi); Pwi = Pmax * power((Pi-Pmin)/(Pmax-Pmin),Alpha); %weighted PDF sum intensity_max = max(max(intensity*L)); Sum_Pwi = sum(Pwi(1:intensity_max)); % weighted CDF Cwi = sum(Pwi(1:intensity_max)/Sum_Pwi); %gamma gamma = 1 - Cwi; %Transformed pixel intensity tpi = round(power(intensity/intensity_max,gamma)); 的值是否正确?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...