数字图像处理实验采样 量化 线性运算 非线性运算 直方图均衡

实验一:图像信号的数字化
一. 实验目的
(1) 通过本实验了解图像的数字化过程,了解数字图像的数据矩阵表示法。
(2) 掌握取样(象素个数)、量化与图像质量的关系。
二. 实验原理
三. 实验内容
(1) 选取任意一副灰度图像,imread进行读取,显示其像素值阵列。
(2) 实现图像的缩小,观察图像采样的像素数对图像质量的影响,观察“棋盘格”现象。
(3) 使用灰度分割减小灰度级来显示同一幅图像,二值图显示图像,观察图像量化对图像质量的影响,观察“伪轮廓”现象。
四. 源程序及结果
五. 结果分析


实验二:图像灰度修正
一. 实验目的
(1) 掌握常用的图像灰度级修正方法,包括图象的线性和非线性灰度点运算和直方图均衡化法,加深对灰度直方图的理解。
(2) 掌握对比度增强、直方图增强的原理,方法。
二. 实验原理
三. 实验内容
(1) 任意选取一副图像,应用线性和非线性点运算,调整灰度的图像细节更容易看清,显示灰度变换前后的图像。
(2) 任意选择一副灰度图像,实现图像的直方图均衡。显示原始图片,原始直方图分布,直方图均衡后图像及直方图分布。

四. 源程序和结果
五. 结果分析

代码:

%将界面上的内容全部清空
clc;
clear;
close all;
I1=imread('F:\ClassPrograms\image\ex12\lena.bmp');%将磁盘存放的图片读入程序

I1=rgb2gray(I1);

figure(1)
imshow(I1),title('原图'); 

I2=I1(1:2:end,1:2:end);%2位采集1,256/2=128
I3=I1(1:4:end,1:4:end);%4位采集1.256/4=64
I4=I1(1:8:end,1:8:end);%8位采集1,256/8=32
I5=I1(1:16:end,1:16:end);%16位采集1,256/16=16
I6=I1(1:32:end,1:32:end);%32位采集1,256/32=8

%显示图片,采样
 figure(2);
 subplot(2,3,1),imshow(I1),title('采样256X256'); 
 subplot(2,3,2),imshow(I2),title('采样128X128');  
 subplot(2,3,3),imshow(I3),title('采样64X64');
 subplot(2,3,4),imshow(I4),title('采样32X32');
 subplot(2,3,5),imshow(I5),title('采样16X16');
  subplot(2,3,6),imshow(I6),title('采样8X8');
 
 
t1=I1
t2=histeq(t1,256)
t3=histeq(t1,128)
t4=histeq(t1,64)
t5=histeq(t1,32)
t6=histeq(t1,16)
t7=histeq(t1,2)


%量化
figure(3);
subplot(2,3,1),imshow(t2),title('量化级为256')
subplot(2,3,2),imshow(t3),title('量化级为128')
subplot(2,3,3),imshow(t4),title('量化级为64')
subplot(2,3,4),imshow(t5),title('量化级为32')
subplot(2,3,5),imshow(t6),title('量化级为16')
subplot(2,3,6),imshow(t7),title('量化级为2')%二值图



I=I1;
s1=I1+20;
s2=2*I1+20;
s3=0.5*I1+20;

s4=255-1*I1;%要注意!!!
s5=-1*I1+255;%要注意!!!

%伽马运算和线性运算
figure(4);
%Gamma取0.75
subplot(2,3,1);imshow(imadjust(I,[],[],0.75));title('Gamma 0.75');
%Gamma取1
subplot(2,3,2);imshow(imadjust(I,[],[],1));title('Gamma 1')
%Gamma取1.5
subplot(2,3,3);imshow(imadjust(I,[],[],1.5));title('Gamma 1.5');

%a=1,b=20
subplot(2,3,4);imshow(imadjust(I,[],[],0.75));title('a=1,b=20');
%a=2,b=20
subplot(2,3,5);imshow(imadjust(I,[],[],1));title('a=2,b=20');
%a=0.5,b=20
subplot(2,3,6);imshow(imadjust(I,[],[],1.5));title('a=0.5,b=20');

figure(5);
%a=-1,b=255
subplot(1,2,1);imshow(s4);title('a=-1,b=255');
subplot(1,2,2);imshow(s5);title('a=-1,b=255');




% 读取原图
R =I1;
[row, col] = size(R);



figure(6);
% 显示原图和原图对应的直方图
subplot(2,2,1), imshow(R), title('原灰度图');
subplot(2,2,2), imhist(R), title('原灰度图的直方图');

% 计算PMF,即统计各灰度值的像素数量
PMF = zeros(1, 256); %注意MATLAB的数组索引从1开始
for i = 1:row
    for j = 1:col
        PMF(R(i,j) + 1) = PMF(R(i,j) + 1) + 1; % R(i,j)为像素的灰度值
    end
end
PMF = PMF / (row * col);

% 计算CDF
CDF = zeros(1,256);
CDF(1) = PMF(1);
for i = 2:256
    CDF(i) = CDF(i - 1) + PMF(i);
end

% 计算均衡后的像素值
Sk = zeros(1,256);
for i = 1:256
    Sk(i) = CDF(i) * 255;
end

% 映射到新的像素值
Sk = round(Sk);
for i = 1:row
    for j = 1:col
        R(i,j) = Sk(R(i,j) + 1);
    end
end

% 绘制直方图均衡后的图像
subplot(2,2,3), imshow(R), title('直方图均衡');
subplot(2,2,4), imhist(R), title('均衡后的直方图');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值