資源簡介
利用高斯函數實現直方圖規定化,小程序,圖像處理課程小作業。自用
代碼片段和文件信息
clear?all;
close?all;
clc;
r=256;
x=0:r-1;
sigma=35;
pi=3.14;
u=130;
y=exp(-((x-u).^2)/(2*sigma^2))/sqrt(2*pi*sigma)???%高斯函數
y=y/sum(y);?????????%歸一化,使函數符合概率分布的sum(y)==1這樣一個規律
plot(y);????????????%待規定的直方圖
G=[];???????????????%函數的累積直方圖
for?i=1:256
???G=[G?sum(y(1:i))];?
end
img=imread(‘shu.jpg‘);????%輸入原圖?
img=rgb2gray(img);
[m?n]=size(img);
hist=imhist(img);???????%待處理圖像的直方圖
p=hist/(m*n);???????????
%?figure;plot(p)??????????%原圖直方圖
s=[];???????????????????%待處理圖像的累積直方圖
for?i=1:256
????s=[s?sum(p(1:i))];
end
for?i=1:256
????tmp{i}=G-s(i);
????tmp{i}=abs(tmp{i});?????????%因為要找距離最近的點,所以取絕對值
????[a?index(i)]=min(tmp{i});???%找到兩個累積直方圖距離最近的點
end
imgn=zeros(mn);
for?i=1:m
???for?j=1:n
??????imgn(ij)=index(img(ij)+1)-1;????%由原圖的灰度通過索引映射到新的灰度
???end
- 上一篇:調頻連續波雷達系統設計
- 下一篇:matlab做的模板匹配,簡單有效
評論
共有 條評論