怎么给自己的公司建立网站,免费的写作网站,如何通过外链提高网站权重,服装网站建设项目实施报告这里分别使用基于像素手动计算、调用工具箱函数两种方法实现直方图规定化
1.基于像素进行直方图规定化
#xff08;1#xff09;读取了原始图像和期望图像#xff0c;并将它们转换为灰度图像
#xff08;2#xff09;计算原始图像和期望图像的像素概率分布直方图P(i)和…这里分别使用基于像素手动计算、调用工具箱函数两种方法实现直方图规定化
1.基于像素进行直方图规定化
1读取了原始图像和期望图像并将它们转换为灰度图像
2计算原始图像和期望图像的像素概率分布直方图P(i)和P(j)并统计它们的累积直方图Pi和Pj
3根据原始图像和期望图像的累积直方图找到使Pi/Pj误差最小的映射关系
4对原始图像进行直方图规定化展示原始图像、期望图像及规定化后的图像
代码
%直方图规定化
I0imread(C:\Users\Desktop\图像1.jpg);
Irgb2gray(I0);
I1rgb2gray(I0);
Gimread(C:\Users\Desktop\期望图像0.jpg);
G2rgb2gray(G);
%计算原图像的长宽
[x,y]size(I);
%创建数组存储像素概率
pzeros(1,256)
%统计每个像素值出现的概率
for i0:255
%length计算相同像素的个数
p(i1)length(find(Ii))/(x*y);
end
%输出原图及原图直方图
figure,
subplot(331),imshow(I);
title(原图)
subplot(332);
bar(0:255,p,b)
title(原图直方图);
%求累计概率得到累积直方图
szeros(1,256)
for i1:256
for j1:i
s(i)p(j)s(i);
end
end
subplot(333);
bar(0:255,s,b);
title(原图累积直方图);
%计算期望图像的长宽
[a,b]size(G2);
%创建数组存储像素概率
zzeros(1,256)
%统计每个像素值出现的概率
for i0:255
%length计算相同像素的个数
z(i1)length(find(G2i))/(a*b);
end
%输出期望图像及直方图
subplot(334),imshow(G2);
title(期望图像)
subplot(335);
bar(0:255,z,b)
title(期望图像直方图);
%求累计概率得到累积直方图
hzeros(1,256)
for i1:256
for j1:i
h(i)z(j)h(i);
end
end
subplot(336);
bar(0:255,h,b);
title(期望图像累积直方图);
new_Izeros(256,1,uint8);
%按照[Pj/Pi]误差最小查找i对应的j
for i1:1:256
minabs(s(i)-h(1));
for j1:1:256
if(abs(s(i)-h(j))min)
minabs(s(i)-h(j));
new_I(i)j;
end
end
end
% 应用映射关系进行直方图规定化
new_Img zeros(size(I1));
for i 1:256
new_Img(I1i)new_I(i);
end
[x,y]size(new_Img);
p1zeros(1,256)
for i0:255
p1(i1)length(find(new_Imgi))/(x*y);
end
subplot(337)
imshow(uint8(new_Img)); % 使用uint8()函数将图像数据转换为无符号整数类型
title(规定化的图像);
subplot(338)
bar(0:255,p1,b);
title(直方图规定化);
%求累计概率得到累积直方图
p11zeros(1,256)
for i1:256
for j1:i
p11(i)p(j)p11(i);
end
end
subplot(339);
bar(0:255,p11,b);
title(规定图像后的累积直方图);
2.调用工具箱函数实现直方图规定化 实现直方图规定化的语法为ghisteq(f,hspec)
其中f为输入图像hspec为规定的直方图g为输出图像输出图像的直方图近似于指定的直方图hspec。首先读取了一张灰度图片然后定义了一个灰度级范围hgram范围从50到250。接着使用histeq函数对原始图像G进行直方图规定化得到规定化后的图像I_histeq。
代码
%直方图规定化
Gimread(C:\Users\Desktop\灰度图片.jpg);
hgram50:2:250
%使用histeq函数进行规定化
I_histeqhisteq(G,hgram);
figure,
subplot(221),imshow(G);
title(原图)
subplot(222),imhist(G);
title(原图直方图)
subplot(223),imshow(I_histeq);
title(规定化图像)
subplot(224),imhist(I_histeq);
title(规定化图像直方图)
图1为通过手动计算调整原始图像的像素值分布使其尽可能接近期望图像的像素值分布从而实现图像的直方图规定化的结果。原始图像的直方图可能比较集中显示较低的对比度和动态范围。而期望图像的直方图覆盖了更广泛的像素值范围有更高的对比度和动态范围。规定化后的图像直方图与期望图像的直方图更加相似可以看到原始图像人物脸部区域较亮对比度较高而期望图像整体较暗对比度较低通过规定化处理后图像对比度降低可以明显发现人物脸部区域变暗。 图1 图2为调用工具包函数实现的直方图规定化结果。通过使用工具包中的函数调整图片的对比度和亮度。自定义期望直方图hgram50:2:250使调整的图像像素均匀分布在50-250之间经过规定化处理可以发现规定化后的图像对比度和亮度增强。 图2