<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/626775914f8811599eeb8e5e/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626775914f8811599eeb8e5e/bg1.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0">matlab<span class="_ _0"> </span><span class="ff2">灰度图直方图均衡化代码</span></div><div class="t m0 x1 h4 y3 ff1 fs0 fc0 sc0 ls0 ws0">clear all</div><div class="t m0 x1 h3 y4 ff1 fs0 fc0 sc0 ls0 ws0">%<span class="ff2">一,图像的预处理,读入彩色图像将其灰度化</span></div><div class="t m0 x1 h3 y5 ff1 fs0 fc0 sc0 ls0 ws0">PS=imread('1.jpg'); %<span class="_ _1"></span><span class="ff2">读入<span class="_ _0"> </span></span>JPG<span class="_ _0"> </span><span class="ff2">彩色图像文件</span></div><div class="t m0 x1 h3 y6 ff1 fs0 fc0 sc0 ls0 ws0">imshow(PS) <span class="_ _1"></span> <span class="_ _2"></span> %<span class="_ _1"></span><span class="ff2">显示出来</span></div><div class="t m0 x1 h3 y7 ff1 fs0 fc0 sc0 ls0 ws0">title('<span class="ff2">输入的彩色<span class="_ _0"> </span></span>JPG<span class="_ _0"> </span><span class="ff2">图像</span>')</div><div class="t m0 x1 h3 y8 ff1 fs0 fc0 sc0 ls0 ws0">imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %<span class="_ _1"></span><span class="ff2">将彩色图片灰度化并保存</span></div><div class="t m0 x1 h3 y9 ff1 fs0 fc0 sc0 ls0 ws0">PS=rgb2gray(PS); <span class="_ _1"></span> <span class="_ _2"></span> %<span class="ff2">灰度化后的数据存入数组</span></div><div class="t m0 x1 h3 ya ff1 fs0 fc0 sc0 ls0 ws0">%<span class="ff2">二,绘制直方图</span></div><div class="t m0 x1 h3 yb ff1 fs0 fc0 sc0 ls0 ws0">[m,n]=size(PS); <span class="_ _1"></span> <span class="_ _2"></span> %<span class="_ _1"></span><span class="ff2">测量图像尺寸参数</span></div><div class="t m0 x1 h3 yc ff1 fs0 fc0 sc0 ls0 ws0">GP=zeros(1,256); <span class="_ _1"></span> %<span class="ff2">预创建存放灰度出现概率的向量</span></div><div class="t m0 x1 h4 yd ff1 fs0 fc0 sc0 ls0 ws0">for k=0:255</div><div class="t m0 x1 h3 ye ff1 fs0 fc0 sc0 ls0 ws0"> <span class="_ _1"></span> <span class="_ _1"></span> <span class="_ _1"></span>GP(k+1)=length(-nd(PS==k))/(m*n); <span class="_ _1"></span> <span class="_ _1"></span> %<span class="_ _3"></span><span class="ff2">计<span class="_ _1"></span>算每<span class="_ _1"></span>级灰<span class="_ _1"></span>度出<span class="_ _1"></span>现的<span class="_ _1"></span>概率<span class="_ _1"></span>,将<span class="_ _1"></span>其存<span class="_ _1"></span>入</span></div><div class="t m0 x1 h3 yf ff1 fs0 fc0 sc0 ls0 ws0">GP<span class="_ _0"> </span><span class="ff2">中相应位置</span></div><div class="t m0 x1 h4 y10 ff1 fs0 fc0 sc0 ls0 ws0">end</div><div class="t m0 x1 h3 y11 ff1 fs0 fc0 sc0 ls0 ws0">-gure,bar(0:255,GP,'g') %<span class="_ _1"></span><span class="ff2">绘制直方图</span></div><div class="t m0 x1 h3 y12 ff1 fs0 fc0 sc0 ls0 ws0">title('<span class="ff2">原图像直方图</span>')</div><div class="t m0 x1 h3 y13 ff1 fs0 fc0 sc0 ls0 ws0">xlabel('<span class="ff2">灰度值</span>')</div><div class="t m0 x1 h3 y14 ff1 fs0 fc0 sc0 ls0 ws0">ylabel('<span class="ff2">出现概率</span>')</div><div class="t m0 x1 h3 y15 ff1 fs0 fc0 sc0 ls0 ws0">%<span class="ff2">三,直方图均衡化</span></div><div class="t m0 x1 h4 y16 ff1 fs0 fc0 sc0 ls0 ws0">S1=zeros(1,256);</div><div class="t m0 x1 h4 y17 ff1 fs0 fc0 sc0 ls0 ws0">for i=1:256</div><div class="t m0 x1 h4 y18 ff1 fs0 fc0 sc0 ls0 ws0"> for j=1:i</div><div class="t m0 x1 h3 y19 ff1 fs0 fc0 sc0 ls0 ws0"> S1(i)=GP(j)+S1(i); <span class="_ _1"></span> %<span class="ff2">计算<span class="_ _0"> </span></span>Sk</div><div class="t m0 x1 h4 y1a ff1 fs0 fc0 sc0 ls0 ws0"> end</div><div class="t m0 x1 h4 y1b ff1 fs0 fc0 sc0 ls0 ws0">end</div><div class="t m0 x1 h3 y1c ff1 fs0 fc0 sc0 ls0 ws0">S2=round((S1*256)+0.5); %<span class="_ _1"></span><span class="ff2">将<span class="_ _0"> </span></span>Sk<span class="_ _0"> </span><span class="ff2">归到相近级的灰度</span></div><div class="t m0 x1 h4 y1d ff1 fs0 fc0 sc0 ls0 ws0">for i=1:256</div><div class="t m0 x1 h3 y1e ff1 fs0 fc0 sc0 ls0 ws0"> GPeq(i)=sum(GP(-nd(S2==i))); %<span class="_ _1"></span><span class="ff2">计算现有每个灰度级出现的概率</span></div><div class="t m0 x1 h4 y1f ff1 fs0 fc0 sc0 ls0 ws0">end</div><div class="t m0 x1 h3 y20 ff1 fs0 fc0 sc0 ls0 ws0">-gure,bar(0:255,GPeq,'b') %<span class="_ _1"></span><span class="ff2">显示均衡化后的直方图</span></div><div class="t m0 x1 h3 y21 ff1 fs0 fc0 sc0 ls0 ws0">title('<span class="ff2">均衡化后的直方图</span>')</div><div class="t m0 x1 h3 y22 ff1 fs0 fc0 sc0 ls0 ws0">xlabel('<span class="ff2">灰度值</span>')</div><div class="t m0 x1 h3 y23 ff1 fs0 fc0 sc0 ls0 ws0">ylabel('<span class="ff2">出现概率</span>')</div><div class="t m0 x1 h3 y24 ff1 fs0 fc0 sc0 ls0 ws0">%<span class="ff2">四,图像均衡化</span></div><div class="t m0 x1 h4 y25 ff1 fs0 fc0 sc0 ls0 ws0">PA=PS;</div><div class="t m0 x1 h4 y26 ff1 fs0 fc0 sc0 ls0 ws0">for i=0:255</div><div class="t m0 x1 h3 y27 ff1 fs0 fc0 sc0 ls0 ws0"> PA(-nd(PS==i))=S2(i+1); %<span class="_ _1"></span><span class="ff2">将各个像素归一化后的灰度值赋给这个像素</span></div><div class="t m0 x1 h4 y28 ff1 fs0 fc0 sc0 ls0 ws0">end</div><div class="t m0 x1 h3 y29 ff1 fs0 fc0 sc0 ls0 ws0">-gure,imshow(PA) <span class="_ _1"></span> <span class="_ _2"></span> %<span class="_ _1"></span><span class="ff2">显示均衡化后的图像</span></div><div class="t m0 x1 h3 y2a ff1 fs0 fc0 sc0 ls0 ws0">title('<span class="ff2">均衡化后图像</span>')</div><div class="t m0 x1 h4 y2b ff1 fs0 fc0 sc0 ls0 ws0">imwrite(PA,'PicEqual.bmp');</div></div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>
</body>
</html>