MATLAB数字图像处理(⼀)局部直⽅图均衡化版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。 blog.csdn/beilu14hao/article/details/78679702
利⽤MATLAB做图像的局部直⽅图均衡化:
clc
clear;
picture=imread('yun.png'); %读取图像
figure(1)
imshow(picture),title('原象'); %显⽰原始图象
picture=rgb2gray(picture);
%%
%建⽴模板
n=25;局部直方图均衡化
a(1:n,1:n)=1; %模板⼩于图像
image=wextend('2D','sym',picture,n);%%扩展
%%
[M,N]=size(image);%%扩展后的图像⼤⼩
W=double(image);
jubu_image=W;
for i=n+1:M-n
for j=n+1:N-n
m=W(i:i+(n-1),j:j+(n-1)).*a(1:n,1:n); %取出x1中从(i,j)开始的n⾏n列元素与模板相乘
k=histeq(uint8(m));%对局部进⾏直⽅图均衡
lll=double(k);
jubu_image(i,j)=lll(1,1); %将均衡后中⼼点的像素值赋给原图对应点的元素,未被赋值的元素取原值
end
end
Picture=jubu_image(n+1:M-n,n+1:N-n);%%均衡化后,取原图像⼤⼩
Picture=uint8(Picture);
figure(2)
imshow(Picture),title('均衡后的图像'); %显⽰均衡后的图象
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论