假设根据我之前的问题
,我已经均衡了图像的直方图,现在问题是如何在图像上应用这个新的均衡直方图?
我的意思是从新的均衡直方图中获取新图像的算法是什么?
我在网上看到了一个关于这个的代码。
很明显,这张照片中显示的最后一个 for 循环用于在图像矩阵上应用均衡直方图。
但我不明白使用的算法。
再次注意,这是一项大学作业,我不允许使用图像处理工具箱中提供的内置功能。
问问题
2338 次
2 回答
0
- 为图像创建直方图。
- 计算累积分布函数直方图。
- 通过一般直方图均衡公式计算新值。
为图像中的每个灰度值分配新值。
clc close all clear all %% HISTOGRAM EQULAIZER %% I1= imread ('C:\Users\sepideh\Pictures\dip\PC040311.jpg'); zz=rgb2gray(I1); figure,subplot(1,2,1),imshow(zz), title('original image') subplot(1,2,2),imhist(zz),title('original image histogram') %% Calculating the CDF hst=imhist(zz); j=1; cdff(1,1)=hst(1,1); for i=2:256 cdff(i)=hst(i)+cdff(i-j); end cdff1=cdff'; cdf_min=min(cdff); [row col]=size(zz); mn=row*col; figure, plot(cdff), title('CDF of Image') %% calcuting new intensity for indx=1:length(cdff) h(indx)=round((cdff(indx)-cdf_min)/(mn-cdf_min)*255); end h1=h'; figure,plot(h1), title('New value for General Histogram') %% EQULIZED IMAGE HIm=uint8(zeros(size(zz,1),size(zz,2))); for i=1:row; for j=1:col; HIm(i,j) = h((zz(i,j)+1)); end end figure,subplot(1,2,1),imshow(HIm), title('Equlized Image') subplot(1,2,2),imhist(HIm) ,title('Equlized image histogram')
于 2013-12-05T09:16:13.500 回答