数字图像处理实验(图像增强)

一、 实验目的:
理解图像灰度直方图的概念,掌握图像直方图的计算方法;掌握直方图均衡化图像增强技术,理解均衡化的处理过程。理解和掌握均值滤波、中值滤波的原理和具体算法。能解释用大小和形状不同的滑动窗口进行均值、中值滤波后图像所呈现的一些特征。
二、 实验内容:
1、图像直方图及均衡化
1)获取实验用图像:使用imread函数将图像读入Matlab。
2)计算图像的灰度直方图,并用plot等函数生成灰度直方图。

3)设计直方图均衡化算法,并进行程序设计实现。
4)根据直方图均衡化的灰度变换函数实现图像灰度的映射变换,获得均衡化的图像结果。
5)计算均衡化图像的灰度直方图,并用plot等函数生成灰度直方图。
2、图像滤波
矩形邻域中值滤波设计程序,实现3×3、5×5、15×15邻域均值滤波、中值滤波。比较处理前后图像效果。

三、 实验报告要求:
画出直方图均衡化算法的规范化程序设计流程图。用imshow函数显示处理前后图像,用plot等函数生成原始图像和处理图像的灰度直方图,并进行实验结果分析。


代码:
1、图像直方图及均衡化

clc;
clear;
RGB = imread('D:\photo\2.jpg'); % 读取彩色图
subplot(2,3,1);imshow(RGB);title('彩色图');
 
fx=rgb2gray(RGB);
subplot(2,3,2);imshow(fx);title('灰度图');
subplot(2,3,3);imhist(fx);title('灰度图');
 
[R, C] = size(fx);
 
% 统计每个像素值出现次数
count = zeros(1, 256);
for i = 1 : R
    for j = 1 : C
        count(1, fx(i, j) + 1) = count(1, fx(i, j) + 1) + 1;
    end
end

%一下编写T函数[2]
T = zeros(1, 256);
T = double(T); count = double(count);
 
% 统计每个像素值出现的概率, 得到概率直方图
for i = 1 : 256
    T(1, i) = count(1, i) / (R * C);
end
 
% 求累计概率,得到累计直方图
for i = 2 : 256
    T(1, i) = T(1, i - 1) + T(1, i);
end
 
% 完善T函数的定义
for i = 1 : 256
    T(1, i) = T(1, i) * 255;
end
% 完成每个像素点的映射
fy = double(fx);
for i = 1 : R
    for j = 1 : C
        fy(i, j) = T(1, fy(i, j) + 1);
    end
end
 
% 输出仍然要记得改数据类型
fy = uint8(fy);
subplot(2,3,5);imshow(fy);title('直方图均衡化');
subplot(2,3,6);imhist(fy);title('直方图均衡化');

在这里插入图片描述

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值