matlab做直方图均衡,下面的程序是局部直方图均衡,程序运行后的图像显示如下图,黑色部分灰度值均为1

局部直方图均衡方法步骤:首先定义一个大小合适的移动子图块,然后在以每个像素点为中心的子图块上进行直方图均衡化,并将处理结果代替相应子块中心点的灰度值clear;close... 局部直方图均衡方法步骤:首先定义一个大小合适的移动子图块,然后在以每个像素点为中心的子图块上进行直方图均衡化,并将处理结果代替相应子块中心点的灰度值

clear;
close all;
c=imread('lena.bmp'); %读取图像
figure,imshow(c),title('原始图象'); %显示原始图象
n=15;
a(1:n,1:n)=1; %a即n×n模板,元素全是1
%输入图像是p×q的,且p>n,q>n
x1=double(c);
x2=x1;
%A(a:b,c:d)表示A矩阵的第a到b行,第c到d列的所有元素
for i=1:512-n+1
for j=1:512-n+1
m=x1(i:i+(n-1),j:j+(n-1)).*a(1:n,1:n); %取出x1中从(i,j)开始的n行n列元素与模板相乘
k=histeq(m);%对块图进行直方图均衡
x3=double(k);
x2(i,j)=x3(8,8); %将均衡后中心点的像素值赋给原图对应点的元素
end
end
%未被赋值的元素取原值
d=uint8(x2);
figure,imshow(d),title('均衡后的图像'); %显示均衡后的图象

应该如何修改,请高手指教
展开
 我来答
酷呆爱死呆
推荐于2017-12-15 · TA获得超过4240个赞
知道大有可为答主
回答量:507
采纳率:100%
帮助的人:1152万
展开全部

数据类型问题,histeq函数,当你的图像是double型时,返回值是0或者1;当你的图像是uint8型时,返回值为0-255。

所以你编的代码里的:k=histeq(m);%对块图进行直方图均衡,m为double型,所以其k就是全1,那么x2中对应的位置也就是全1,最后显示转化成uint8显示肯定为黑色。

所以把k=histeq(m);改成k=histeq(uint8(m));即可。运行结果如图

追问
类型昨天然后已经调好了,边界应该怎么处理下?
追答
扩展边界。I=wextend('2D','sym',I,(w-1)/2);w=15。
在下面的循环开始处做相应的调整:
for i=(w+1)/2:m-(w-1)/2
for j=(w+1)/2:n-(w-1)/2 %%m,n为图片大小。
最后计算完后,再取回原图形的尺寸即可:
I2=I((w+1)/2:m-(w-1)/2,(w+1)/2:n-(w-1)/2); %%得到处理后的原图(没有扩展的)。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
你的代码是按行列搜索,所以扩展后的序号改写如下:
clear;
close all;
c=imread('D:\matlab7.1\toolbox\images\imdemos\cameraman.tif'); %读取图像
figure,imshow(c),title('原始图象'); %显示原始图象
n=15;
a(1:n,1:n)=1; %a即n×n模板,元素全是1
%输入图像是p×q的,且p>n,q>n
c1=wextend('2D','sym',c,n);%%扩展
x1=double(c1);
[M,N]=size(c1);%%得到扩展后的图像大小
x2=x1;
%A(a:b,c:d)表示A矩阵的第a到b行,第c到d列的所有元素
for i=n+1:M-n
for j=n+1:N-n %%循环条件改动,从16开始
m=x1(i:i+(n-1),j:j+(n-1)).*a(1:n,1:n); %取出x1中从(i,j)开始的n行n列元素与模板相乘
k=histeq(uint8(m));%对块图进行直方图均衡
x3=double(k);
x2(i,j)=x3(8,8); %将均衡后中心点的像素值赋给原图对应点的元素
end
end
%未被赋值的元素取原值
d1=x2(n+1:M-n,n+1:N-n);%%均衡化后,取原图像大小
d=uint8(d1);
figure,imshow(d),title('均衡后的图像'); %显示均衡后的图象
--
2022-12-05 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有... 点击进入详情页
本回答由--提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式