• 大小: 1KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-09
  • 语言: Matlab
  • 标签: matlab  高斯函数  

资源简介

利用高斯函数实现直方图规定化,小程序,图像处理课程小作业。自用

资源截图

代码片段和文件信息

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

评论

共有 条评论