实验2图像的灰度变换.docx
- 文档编号:10569642
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:12
- 大小:424.80KB
实验2图像的灰度变换.docx
《实验2图像的灰度变换.docx》由会员分享,可在线阅读,更多相关《实验2图像的灰度变换.docx(12页珍藏版)》请在冰豆网上搜索。
实验2图像的灰度变换
GDOU-B-11-112
广东海洋大学学生实验报告书(学生用表)
实验名称
图像的基本操作
课程名称
数字图像处理
课程号
学院(系)
信息学院
专业
电子信息工程
班级
电子1103班
学生姓名
杜嘉星
学号
201011611308
实验地点
实验日期
实验2图像的灰度变换
一、实验目的:
学会用MATLAB软件对图像进行运算和灰度变换。
二、实验内容:
用+、-、*、/、imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply、imsubtract和imadjust等函数生成各类灰度变换图像。
三、实验报告要求:
写出每步处理的命令,并提交原图像和处理后的图像。
四、实验相关知识
1、代数运算
两幅图像之间进行点对点的加、减、乘、除运算后得到输出图像。
我们可以分别使用MATLAB的基本算术符+、-、*、/来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型(命令函数为double())。
为了更方便对图像进行操作,图像处理工具箱中也包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。
如下所示:
imabsdiff:
计算两幅图像的绝对差值
imadd:
两个图像的加法
imcomplement:
一个图像的补
imdivide:
两个图像的除法
imlincomb:
计算两幅图像的线性组合
immultiply:
两个图像的乘法
imsubtract:
两个图像的减法
使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。
代数运算的结果很容易超出数据类型允许的范围。
图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:
超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。
2、灰度变换
点运算也称为灰度变换,是一种通过对图像中的每个像素值进行运算,从而改善图像显示效果的操作。
对于特定变换函数f的灰度变换,用户可以利用MATLAB强大的矩阵运算能力,对图像数据矩阵调用各种MATLAB计算函数进行处理。
需要注意的是由于MATLAB不支持uint8类型数据的矩阵运算,所以首先要将图像数据转换为双精度类型,计算完成后再将其转换为uint8类型(命令为uint8())。
而在MATLAB图像处理工具箱中也提供了一个灰度变换函数imadjust,其语法格式为:
J=imadjust(I,[low_inhigh_in],[low_outhigh_out],gamma)。
[low_inhigh_in]是原图像中要变换的灰度范围,[low_outhigh_out]是指定变换后的灰度范围,两者的默认值均为[01]。
gamma的取值决定了输入图像到输出图像的灰度映射方式,即决定是增强低灰度还是增强高灰度。
gamma大于1、等于1和小于1的映射方式如下图所示。
五、实验步骤:
1、仔细阅读imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply和imsubtract的帮助文件(helpimabsdiff),并练习相关函数的使用。
2、加法运算:
将rice.tif和cameraman.tif相加并显示相加结果。
若图像每个像素加上一个常数则亮度会增加,将rice.tif每个像素加上100,显示出结果图像。
3、减法运算:
将上一步中亮度增加的rice图像减去原rice.tif图像,显示出结果,并想想为什么会有这样的结果。
4、乘、除法运算:
一个图像乘以一个大于1的数会使图像变亮,乘以一个小于1的数会使图像变暗,使用immultiply对图像进行乘法运算,乘以一个常数或是乘以另一个图像。
两幅图像的除法操作可以给出相应像素值的变化比率,使用imdivide函数进行两幅图像的除法。
5、实现下图(a)和(b)所示的灰度变换(图中t1、t2、s1、s2自己设置合适的数值)。
6、阅读imadjust的帮助文件,使用函数imadjust进行灰度变换。
设置不同的[low_inhigh_in]、[low_outhigh_out]和gamma值,实现多种灰度变换。
六丶实验程序代码及图片
Imadd两个图片相加:
clearall;
closeall;
clc;
f=imread('D:
\image\avril.jpg’);
g=imread('D:
\image\lavigne.jpg');
k=imadd(f,g);
imshow(k,[]);
Imsubtract两个图片相减:
clearall;
closeall;
clc;
f=imread('D:
\image\avril.jpg');
g=imread('D:
\image\lavigne.jpg');
k=imsubtract(f,g);
imshow(k,[])
immultiply两个图片相乘:
clearall;
closeall;
clc;
f=imread('D:
\image\avril.jpg');
g=imread('D:
\image\lavigne.jpg');
k=immultiply(f,g);
imshow(k,[])
Imdivide两个图片相除:
clearall;
closeall;
clc;
f=imread('D:
\image\avril.jpg');
g=imread('D:
\image\lavigne.jpg');
k=imdivide(f,g);
imshow(k,[])
矩形灰度转换:
closeall;
t1=10;
t2=120;
s1=40;
s2=100;
subplot(1,2,1)
avril=imread('D:
\image\avril.jpg');
avril=rgb2gray(avril);
[m,n]=size(rice);
whosf;
imshow(avril);
title('图像avril')
subplot(1,2,2)
fori=1:
m
forj=1:
n
f=rice(i,j);
g(i,j)=0;
if(f>=0)&&(f<=s1);
g(i,j)=t1;
elseif(f>=s1)&&(f<=s2)
g(i,j)=t2;
elseif(f>=s2)&&(f<=255)
g(i,j)=t1;
end
end
end
g=im2double(g);
imshow(im2uint8(mat2gray(g)));
title('矩形灰度变换后的图')
多种灰度变换:
f=imread('D:
\image\avril.jpg');
A=rgb2gray(f);
B=imadjust(A,[0.100.50],[0.200.80],0.5);%灰度调整
subplot(2,2,1)
imshow(A);
subplot(2,2,2)
imshow(B);
f=imread('D:
\image\avril.jpg');
A=rgb2gray(f);
B=imadjust(A,[0.100.50],[0.200.80],120);%灰度调整
subplot(2,2,1)
imshow(A);
subplot(2,2,2)
imshow(B);
f=imread('D:
\image\avril.jpg');
A=rgb2gray(f);
B=imadjust(A,[0.600.80],[0.100.90],0.5);%灰度调整
subplot(2,2,1)
imshow(A);
subplot(2,2,2)
imshow(B);
七丶实验结果分析:
这次实验主演是让我们学会用MATLAB软件对图像进行运算和灰度变换。
学会用Imabsdiff,imadd,Imcomplement,imdivide,Imlincomb,Immultiply,Imsubtract等函数对图像进行相加,相减,相乘,相除等操作。
经过这次实验我了解了很多,特别是对图片的运算,最后对图片的锯齿灰度转换并不太了解,以后会继续努力,加强对matlab的运用。
成绩
指导教师
日期
第 页,共 页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验2 图像的灰度变换 实验 图像 灰度 变换