实验二 图像运算
图像基本运算实验指导
图像的缩放
1 、实验内容 对一幅图像实现按比例缩小和不按比例任意缩小的效果,以及图像的成倍放大和 不按比例放大效果。 2 、实验原理 数字图像的比例缩放是指将给定的图像在 x 方向和 y 方向按相同的比例缩放 a 倍, 从而 获得一幅新的图像,又称为全比例缩放。如果 x 方向和 y 方向缩放的比例不同,则图像的比 例缩放会改变原始图像像素间的相对位置,产生几何畸变。设原始图像中的点 A0 ( x0 , y0 ) 比 例缩放后,在新图中的对应点为 A1 ( x 1 , y1 ) ,则 A0 ( x0 , y0 ) 和 A1 ( x 1 , y1 ) 之间坐标关系可表 示如下:
J = i m 2 d o u b l e ( J ) ; K = I + 0 . 3 * J ; % 两幅图像相加 s u b p l o t ( 1 , 3 , 1 ) ; i m s h o w ( I ) ; t i t l e ( ' 人物图' ) ; s u b p l o t ( 1 , 3 , 2 ) ; i m s h o w ( J ) ; t i t l e ( ' 背景图' ) ; s u b p l o t ( 1 , 3 , 3 ) ; i m s h o w ( K ) ; t i t l e ( ' 相加后的图' ) ; i m w r i t e ( K , ' i _ l e n a 1 . j p g ' ) ; (2 )选取一幅混合图像,如上图相加得到的图像 i _ l e n a . j p g , 将混合图像与背景图像 做减法运算,程序如下,结果如图(b ) 。 A = i m r e a d ( ' i _ l e n a 1 . j p g ' ) ; B = i m r e a d ( ' r i c e . p n g ' ) ; C = A 0 . 3 * B ; % 混合图减去背景图 s u b p l o t ( 1 , 3 , 1 ) ; i m s h o w ( A ) ; t i t l e ( ' 混合图' ) ; s u b p l o t ( 1 , 3 , 2 ) ; i m s h o w ( B ) ; t i t l e ( ' 背景图' ) ; s u b p l o t ( 1 , 3 , 3 ) ; i m s h o w ( C ) ; t i t l e ( ' 分离后的图' ) ; (3 )选取一幅尺寸为 2 5 6 ×2 5 6 的灰度图,如 i _ l e n a . j p g 。设置掩膜模板,对于需要 保留下来的区域,掩膜图像的值置为 1,而在需要被抑制掉的区域,掩膜图像的值置为 0。 程序如下,结果如图(c) 。 A = i m r e a d ( ' i _ l e n a . j p g ' ) ; A = i m 2 d o u b l e ( A ) ; s u b p l o t ( 1 , 2 , 1 ) ; i m s h o w ( A ) ; t i t l e ( ' 原图' ) ; B = z e r o s ( 2 5 6 ) ; % 设置模板 B ( 4 0 : 2 0 0 , 4 0 : 2 0 0 ) = 1 ; K = A . * B ; % 两幅图像相乘 s u b p l o t ( 1 , 2 , 2 ) ; i m s h o w ( K ) ; t i t l e ( ' 局部图' ) ; 4 、实验结果与分析 (1 ) 、实验结果如图 3 . 8 所示。
数字图像处理 实验二 图像运算
实验二图像运算一、实验目的1.熟悉图像点运算和代数运算的实现方法;2.了解图像几何运算的简单应用;3.了解图像的邻域操作;4.了解图像简单几何运算;5.体会图像算术及几何运算处理的过程和处理前后图像的变化。
二、实验内容1.图像点运算读入图像‘rice.png’,通过图像点运算改变对比度。
rice=imread('rice.png');subplot(131),imshow(rice)I=double(rice); %转换为双精度类型J=I*0.43+60;rice2=uint8(J); %转换为uint8subplot(132),imshow(rice2)J=I*1.5-60;rice3=uint8(J); %转换为uint8subplot(133),imshow(rice3)结果:略。
说明:(1)‘rice.png’亦可以换成任意其他图像;(2)运算时可以改变运算系数。
2.图像的代数运算图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。
如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式:C(x,y) = A(x,y) + B(x,y)C(x,y) = A(x,y) - B(x,y)C(x,y) = A(x,y) * B(x,y)C(x,y) = A(x,y) / B(x,y)图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。
例如,图像减法就可以用来检测同一场景或物体生产的两幅或多幅图像的误差。
使用MATLAB的基本算术符(+、-、*、/ 等)可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。
为了更方便地对图像进行操作,MATLAB图像处理工具箱包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。
图象处理技术实验二
相关函数
二维中值滤波器函数medfilt2 1、B = medfilt2(A,[m n]) 对矩阵A进行二维中值滤波。中值滤波所用的窗口大小 为M*N。[m n]缺省值为[3 3]。 2、B = medfilt2(A) 对矩阵A进行缺省值为[3 3]二维中值滤波。 顺序统计滤波器函数ordfilt2 Y = ordfilt2(X,order,domain) ordfilt2由domain中非0元素指定邻域的排序集中的第 order个元素代替X中的元素。Domain是一个仅包括0和1 的矩阵,1定义滤波运算的邻域 Y = ordfilt2(X,5,ones(3,3)) %实现3*3的中值滤波 Y = ordfilt2(X,1,ones(3,3)) %实现3*3的最小值滤波
Seed-vpm642实验部分
3 . 打开工程:分别打开工程目录 C:\SEED-DM642- 2\SEED304_MedianFilter, C:\SEED-DM642-2\SEED306_LaplacianSharp 4 . 浏览工程中源程序并理解含义 5 . 编译、连接、下载程序并运行,观察显示。 6 . 结束运行,退出工程。
中值滤波
锐化算法
(1)梯度法
(2)拉普拉斯算子法
参考程序一: 读入图片‘eight.tif’,加入指定噪声。分别 采用中值,顺序滤波函数对图象滤波。 参考程序二: 输入一幅名为circuit.tif 的图象。对原始图 像利用梯度法进行锐化(采用Roberts算 子);对原始图像利用拉普拉斯算子进行 锐化(采用W2所示模板)。
相关函数
二维卷积函数conv2 C = conv2(A,B) 计算矩阵A和B的卷积 二维线性数字滤波函数filter2 Y = filter2(B,X) filter2使用矩阵B中的二维FIR滤波器对数据X进行滤波。 结果Y是通过二维互相计算出来的,其大小与X一样。 产生预定义滤波器函数fspecial H = fspecial(‘type’) 用于产生一个由type指定的二维滤波器H。返回的H常用 来参与运算。Type值:gaussian,average,unsharp等等。
数字图像处理实验
学院计算机与通信工程学院专业生物医学工程专业班级51111学号5111133姓名杨静指导教师贾朔2014年04月21日实验一图像的基本运算一、实验目的:1、掌握图像处理中的点运算、代数运算、逻辑运算和几何运算及应用。
2、掌握各种运算对于图像处理中的效果。
二、实验内容:1、(1)选择一幅图像lena8.jpg,设置输入/输出变换的灰度级范围,a=0.2,b=0.6,c=0.1,d=0.9.(2)设置非线性扩展函数的参数c=2.(3)采用灰度级倒置变换函数s=255-r进行图像变换(4)设置二值化图像的阈值,分别为level=0.4,level=0.7解:参考程序如下:I=imread('C:\lena8.jpg');figure;subplot(2,3,1);imshow(I);title('原图');J=imadjust(I,[0.3;0.6],[0.1;0.9]); %设置灰度变换的范围subplot(2,3,2);imshow(J);title('线性扩展');I1=double(I); %将图像转换为double类型I2=I1/255; %归一化此图像C=2;K=C*log(1+I2); %求图像的对数变换subplot(2,3,3);imshow(K);title('非线性扩展');M=im2bw(I,0.5);M=~M;%M=255-I; %将此图像取反%Figuresubplot(2,3,4);imshow(M);title('灰度倒置');N1=im2bw(I,0.4); %将此图像二值化,阈值为0.4N2=im2bw(I,0.7); %将此图像二值化,阈值为0.7subplot(2,3,5);imshow(N1);title('二值化阈值0.4');subplot(2,3,6);imshow(N2);title('二值化阈值0.7');2、选取两幅大小一样的灰度图像hough.bmp和rice.bmp,将两幅图像进行加法运算。
实验二 图像变换
实验二图像变换
一、实验内容
1.对图像进行平移,掌握图像的傅里叶频谱和平移后的傅里叶频谱的对应关系;
2.对图像进行旋转,掌握图像的傅里叶频谱和旋转后的傅里叶频谱的对应关系。
2、实验原理
如果F(u,v)的频率变量u,v各移动了u0,v0距离,f(x,y)的变量x,y各移动了x0,y0距离,则傅里叶变换如下所示
因此傅里叶变换的平移性质表明函数与一个指数项相乘等于将变换后的空域中心移到新的位置,平移不改变频谱的幅值。
傅里叶旋转可以通过下面变换得到:
对f(x,y)旋转一个角度对应于将其傅里叶变换F(u,v)也旋转相同的角度。
3、实验方法和程序
1. 选取一副图像,进行离散傅里叶变换,将其中心移到零点,得到
其离散傅里叶变换。
参考例4.10
2. 选取一副图像,进行离散余弦变换,并对其进行离散余弦反变
换。
参考例4.13
3. 选取一副图像,采用butterworth高通滤波器对图像进行高通滤
波。
参考例5.7
4、实验结果与分析
Matlab代码以及结果图
5、思考题
1. 将图像分别进行X轴与Y轴上的平移,所得傅里叶频谱与原图像
的傅里叶频谱有什么变换?。
图像处理实验2实验报告MLAB
数字图像处理实验报告一.实验目的:通过本次实验,了解和熟悉matlab的实验环境,掌握图片的读取、显示、存储的方法。
利用matlab对图片进行指定函数的线性变换和对图像进行直方图均衡化。
二.实验内容:1. 线性灰度变化:要求:读入位图图像,求取直方图,显示原直方图;进行图像线性变化;显示处理后的图像,观察与原图像有何不同。
实验后提交:原图像;原图像直方图;处理后图像;处理后图像直方图。
2. 直方图均衡:要求:读入位图图像,求取直方图;显示原直方图;进行直方图均衡化处理;显示处理后的图像,观察与原图像有何不同。
实验后提交:原图像;原图像直方图;处理后图像;处理后图像直方图。
三.实验过程:1、(1)img1=imread('pic.bmp')img2=255-img1subplot(1,2,1),imshow(img1),subplot(1,2,2),imshow(img2)subplot(1,2,1),imhist(img1),subplot(1,2,2),imhist(img2)(2)img1=imread('pic.bmp') b=zeros(size(img1)) pos=find(img1>100);b(pos)=img1(pos); imshow(b)2.img1=imread('pic.bmp')imhist(img1)img2=histeq(img1)subplot(1,2,1),imshow(img2),subplot(1,2,2),histeq(img2) subplot(1,2,1),imshow(img2),subplot(1,2,2),imhist(img2)四.实验小结:通过本实验,我学会了用Matlab7.0对图像进行读取、存储、显示的节本操作,利用matlab对图片进行指定函数的线性变换和对图像进行直方图均衡化。
2.实验二 图像的基本运算
实验二 图像的基本运算一、实验目的与要求1.掌握图像代数运算和几何变换的基本原理 2. 了解图像代数运算和几何变换的简单应用及MATLAB 实现二、实验设备与软件1.PC 计算机系统 2. MATLAB 软件,包括图像处理工具箱(Image Processing Toolbox) 3. 实验图片三、实验原理及知识点1.图像的代数运算代数运算是指对两幅或两幅以上输入图像进行点对点的加、减、乘、除运算而得到目标图像的运算。
图像处理代数运算的4种基本形式如下:上式中,A(x,y)和B(x,y)是输入图像,C(x,y)是输出图像。
2.图像的缩放数字图像的比例缩放是指将给定的图像在x 方向和y 方向按相同的比例a 缩放,从而得到一幅新的图像,又称为全比例缩放。
如果x 方向和y 方向缩放的比例不同,则图像的比例缩放会改变图像像素间的相对位置,产生几何畸变。
设原始图像中的点A 0(x 0,y 0)比例缩放后,在新图像中的对应点为A 1(x 1,y 1),则A 0(x 0,y 0)和A 1(x 1,y 1)之间的坐标关系可表示如下:3.图像的旋转设原始图像的任意点A 0(x 0,y 0)经旋转角度ß以后得到新的位置A(x,y)。
图像的旋转可以用矩阵形式表示如下。
图像旋转之后也可以根据新点求解原始新点的坐标,其矩阵表示形式如下:101010100000,10011x a x x ax y a y y ay ⎛⎫⎛⎫⎛⎫=⎧ ⎪ ⎪⎪=⎨ ⎪ ⎪⎪=⎩ ⎪ ⎪⎪⎝⎭⎝⎭⎝⎭即00cos sin 0sin cos 010011x x y y ββββ⎛⎫⎛⎫⎛⎫ ⎪ ⎪⎪=- ⎪ ⎪⎪ ⎪ ⎪⎪⎝⎭⎝⎭⎝⎭四、实验内容及步骤1.图像的代数运算 选择两幅图像,一幅是源图像,一幅为背景图像,采用正确的图像代数运算方法,分别实现图像叠加、混合图像的分离和图像的局部显示效果。
(1)选取两幅大小一样的图像Fig2.22(a).jpg 和finger.bmp ,将两幅图像进行加法运算。
实验二 图像的基本操作
实验二图像的基本操作实验目的1.熟悉Photoshop CS的基本操作2.掌握常用工具的使用3.掌握图层的简单应用实验内容1.立体相框的制作2.移花接木3.制作圆柱体等图案4.修补照片5.制作彩色文字6.制作心形图案1.立体相框的制作,请把结果文件保存为sy2-1.psd。
①打开图片“牡丹花.jpg”,单击菜单“图像|图像大小”,观察图像现在的像素大小是多少MB?然后用计算器计算2048*1536*3/(1024*1024)是不是正好等于图像的像素大小,为什么?将图片大小改为1024*768,分辨率为72pps(像素/英寸),观察现在的文档大小是多少?请计算1024/(72/2.54)和768/(72/2.54)是否就是文档大小?(1英寸=2.54厘米),下面请将分辨率改为300pps,如果保持文档大小不变,请观察像素大小的变化,继续将像素大小改为1024*768,请观察文档大小是多少?通过本实验请大家了解像素大小、文档大小和分辨率之间的关系。
②打开“t1.jpg”图片,图像大小改为100*72,选取该照片定义为图案。
③继续将“牡丹花.jpg”图片的画布四周扩大2厘米,然后将自己定义的图案填充到扩充的画布区域内。
④在图层面板中双击背景图层将其转换为普通图层,然后添加斜面与浮雕的立体效果,样式自己定义。
效果如图2-1所示。
图2-1 立体相框图2-2 一串红2.移花接木,请把结果文件保存为sy2-2.psd。
①打开“一串红.jpg”,将图像的大小改成800*600,图像顺时针旋转90度,如图2-2所示。
②打开图像文件“蝴蝶.jpg”,将图像放大显示到300%,用钢笔工具描绘出蝴蝶的路径(注意工具选项栏中按下路径按钮),如图2-3所示,然后在如图2-4所示的路径面板中单击下方的“将路径作为选区载入”按钮,将蝴蝶选中,按Ctrl+C复制选中的图像。
图2-3 蝴蝶的路径图2-4 路径面板图2-5 合并后的图片③切换到一串红图像文件,按“Ctrl+V”粘贴(注意复制的图像放在一个新图层上),可以按Ctrl+T(自由变换)对蝴蝶进行任意缩放,调整到合适的大小,利用“移动工具”将蝴蝶移动到叶子上,最后合并图层,效果如图2-5所示。
数字图像处理_实验报告书(二)
K=K+J1;endK=K/100;figure;imshow(K);结果截图:(2)编写MATLAB程序,实现一幅图像的乘法运算。
如P37的图3.7所示。
程序:clearI=imread('Lena.bmp');J=imread('Lena.bmp');K=imsubtract(I,J);K1=255-K;figure;imshow(I);title('有噪声的图');figure;imshow(J);title('原图');figure;imshow(K1); title('提取的噪声'); 截图:(3)编写MATLAB程序,实现一幅二值图像的基本逻辑运算。
如P39的图3.10所示。
程序:A=zeros(128);A(40:67,60:100)=1;figure(1);imshow(A);B=zeros(128);B(50:80,40:70)=1;figure(2);imshow(B);C=and(A,B);figure(3);imshow(C);D=or(A,B);figure(4);imshow(D);E=not(A);figure(5);imshow(E)截图:(4)编写MATLAB程序,实现一幅图像的旋转60度的运算。
如P44的图3.16所示。
程序:cleari=imread('Lena.bmp');J=imrotate(i,60,'bilinear');K=imrotate(i,60,'bilinear','crop');subplot(1,3,1),imshow(i);subplot(1,3,2),imshow(J);subplot(1,3,3),imshow(K);截图:(5)编写MATLAB程序,比较一幅图像采用三种不同插值法进行放大的效果。
实验二 图像点运算
实验二 图像点运算一、实验目的1) 掌握图像线性和非线性点运算的基本原理和算法;2) 掌握借助直方图分析点运算的基本方法;3) 掌握图像灰度直方图均衡的原理和算法;4) 掌握根据图像特点进行点运算的基本原理和方法。
5) 通过编程,上机调试程序,进一步提高编程能力及使用计算机解决问题的能力。
二、实验原理1. 图像线性点运算的基本方法图像点运算是一种基于单个像素的灰度调整方法,它通常根据一定的全局模型或像素统计值来对像素进行逐一操作,不涉及其它像素。
图像点运算方法大体可分为线性方法和非线性方法。
线性变换方法就是将图像中所有点的灰度按照线性灰度变换函数进行变换。
可用公式简单表述为(,)[(,)]g m n T f m n =。
其中[.]T 为变换函数。
一种扩展感兴趣的,牺牲其它区间的函数表达式如下[]; 0(,)(,)(,); (,);(,)255a f m n a d c g x y c f m n a a f m n b b a b b f m n ≤<⎧⎪-⎪=+-≤<⎨-⎪≤<⎪⎩ (1) 其中输入图像为(,)f m n ,输出图像为(,)g m n 。
,,,a b c d 为参数,不同的值会有较大的差异。
使用时要注意输出函数的阈值限定。
如图 1 所示,该函数对于感兴趣的[a,b)区间,采用斜率大于1的线性变换来进行扩展,而把其它区间用a 或b 来表示。
图1 扩展感兴趣的,牺牲其它区间的函数表达式2.图像非线性点运算图像非线性变换种类非常丰富,可分为分段线性变换、对数变换、幂数变换等等。
阈值分割就利用了分段线性变换函数。
对数变换常用来扩展被压缩的高值图像中的暗像素,相对的是反对数变换的调整值。
分段线性变换函数意为在某一灰度区间的变换函数为线性函数,组合形式为[][](,);0(,)(,)(,); (,)(,);(,)c f m n f m n a a d c g x y c f m n a a f m n b b a N d d f m n b b f m n M M b ⎧≤<⎪⎪-⎪=+-≤<⎨-⎪-⎪+-≤<⎪-⎩(2) 其中输入图像为(,)f m n ,输出图像为(,)g m n 。
数字图像处理实验 实验二
实验二MATLAB图像运算一、实验目的1.了解图像的算术运算在数字图像处理中的初步应用。
2.体会图像算术运算处理的过程和处理前后图像的变化。
二、实验步骤1.图像的加法运算-imadd对于两个图像和的均值有:推广这个公式为:其中,。
这样就可以得到各种图像合成的效果,也可以用于两张图像的衔接。
说明:两个示例图像保存在默认路径下,文件名分别为'rice.png'和'cameraman.tif',要求实现下图所示结果。
代码:I1 = imread('rice.png');I2 = imread('cameraman.tif');I3 = imadd(I1, I2,'uint8');I4 = imadd(I1, I2,'uint16');subplot(2, 2, 1), imshow(I1), title('Ô-ʼͼÏñ1');subplot(2, 2, 2), imshow(I2), title('Ô-ʼͼÏñ2');subplot(2, 2, 3), imshow(I3), title('8λͼÏñÏÔʾ');subplot(2, 2, 4), imshow(I4), title('16λͼÏñÏÔʾ');结果截图:2.图像的减法运算-imsubtract说明:背景图像可通过膨胀算法得到background = imopen(I,strel('disk',15));,要求实现下图所示结果。
实验二 图像运算
实验二图像运算一、实验目的1.熟悉图像点运算和代数运算的实现方法2.了解图像几何运算的简单应用3.了解图像的邻域操作二、实验步骤1、打开MATLAB软件,设置工作路径,新建M文件。
2、将图片放到当前工作路径下3、写入图像运算(包括点运算、代数运算、几何运算和图像剪切)程序保存并调试运行。
程序具体要求:(1)图像点运算:读入图像,通过图像点运算改变对比度。
(2)图像的代数运算:图像加法运算、减法运算、乘法运算。
(3)图像的几何运算:A)改变图像的大小:读入图像,改变图像大小,分别将原图像放大1.5倍和缩小0.5倍。
B)旋转一幅图像将上述图像顺时针和逆时针旋转任意角度,观察显示效果。
C)图像剪切:通过交互式操作,从一幅图像中剪切一个矩形区域。
4、保存实验结果并完善实验报告。
三、实验程序1. 图像点运算%读入图像‘rice.jpg’,通过图像点运算改变对比度rice=imread('rice.jpg');subplot(131),imshow(rice)I=double(rice); %转换为双精度类型J=I*0.43+60;rice2=uint8(J); %转换为uint8subplot(132),imshow(rice2)rice3=uint8(J); %转换为uint8subplot(133),imshow(rice3)2.图像的代数运算a)图像加法运算I=imread('rice.jpg ');imshow(I)J=imread('cameraman.jpg');figure,imshow(J)K=imadd(I,J);figure,imshow(K)K2=imadd(I,J,'uint16');figure,imshow(K2,[])RGB=imread('flowers.jpg');RGB2=imadd(RGB,50);imshow(RGB)figure,imshow(RGB2)RGB3=imadd(RGB,100);figure,imshow(RGB3)b)图像减法运算I=imread('rice.jpg');imshow(I)background = imopen(I,strel('disk',15)); %估计背景图像figure, imshow(background);I2=imsubtract(I,background); %从原始图像中减去背景图像figure, imshow(I2)c)图像乘法运算I=imread('flowers.jpg');J=immultiply(I,1.2);K=immultiply(I,0.5);figure,imshow(J)figure,imshow(K)d)*图像除法运算I=imread('rice.jpg');J=imdivide(I,1.2);K=imdivide(I,0.8);imshow(I)figure,imshow(J)figure,imshow(K)3.图像的几何运算a)改变图像的大小读入图像‘cameraman.jpg’,改变图像大小,分别将原图像放大1.5倍和缩小0.5倍。
图像运算 实验报告
实验报告课程名称医学图像处理实验名称图像运算专业班级姓名学号实验日期实验地点2015—2016学年度第 2 学期一、实验目的MATLAB的图像处理工具箱提供了图像运算函数。
本实验将具体介绍Matlab中的图像点运算、代数运算、几何和邻域操作运算。
二、实验环境1、硬件配置:处理器:Intel(R)Core(TM) i7-3770 CPU @3.40GHz 3.40GHz安装内存(RAM):4.00GB 系统类型:64位操作系统2、软件环境:MATLAB R2013b软件三、实验内容利用Matlab对图像进行点运算、加法运算、减法运算、乘法运算、除法运算、改变图像的大小、旋转图像、图像的剪切、图像的邻域操作。
四、实验结果与分析(包括实验原理、数据的准备、运行过程分析、源程序(代码)、图形图象界面等)注:本项可以增加页数例1图像点运算skull=imread('skull.tif'); %读取图像subplot(131),imshow(skull) %生成一行三列三块区域,并在第一块区域绘制图像I=double(skull); %转换为双精度类型J=I*0.43+60; %利用该函数对输出图像进行压缩,使其对比度减小,图像变暗skull2=uint8(J); %转换为uint8subplot(132),imshow(skull2) %在第二块区域绘制图像J=I*1.5-60; %利用该函数对输出图像进行对比度级数拓展,使其对比度增强,图像变亮skull3=uint8(J); %转换为uint8subplot(133),imshow(skull3) %在第三块区域绘制图像运行结果:图1 原图像图2 对比度减小的图像图3 对比度增强的图像分析:1)subplot是用于将多个图像画到一个平面上的函数。
subplot(m,n,p,)中的m表示m行,n 表示n列,p表示从左到右的第几块区域;2)uint8表示8位无符号的整型数据类型,以此方式存储的图像称作8位图像;而Matlab中数值一般采用double型的存储和运算,因此在进行本题的灰度变换运算时,应先把skull图像转化为double格式;3)线性灰度变换函数当a=1,b=0时,输出图像像素不发生变化;当a=1,0b时,输≠出图像所有灰度值上移或下移;当1<a时,输出图像灰度级压缩,对比度减小,0<如图2所示;当1<aa时,输出图像灰度级拓展,对比度增强,如图3所示;当0>时,输出图像暗区域变亮,亮区域变暗,图像求反。
数学图像处理·实验二
一、实验目的1.了解图像的算术运算在数字图像处理中的初步应用。
2.体会图像算术运算处理的过程和处理前后图像的变化。
二、实验器材MATLAB软件、图像三、实验要求图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。
如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式:C(x,y) = A(x,y) + B(x,y)C(x,y) = A(x,y) - B(x,y)C(x,y) = A(x,y) * B(x,y)C(x,y) = A(x,y) / B(x,y)请用Matlab实现上述四种运算。
在实验报告中写出实验目的、实验原理,描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果和源代码,并进行必要的讨论,必须包括原始图像及其计算/处理后的图像。
四、实验原理使用MATLAB的基本算术符可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。
使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。
Imadd()函数可以实现两个图像相加;Imdivide()图像可以实现两幅图像的除法;Immultiply()可以实现两幅图像的乘法;imsubtract()可以实现两幅图像的减法。
无论进行哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同。
图像相加一般用于对同一场景的多幅图像求平均效果,以便有效地降低具有叠加性质的随机噪声;图像减法也称为差分方法,是一种常用于检测图像变化及运动物体的图像处理方法;两幅图像进行乘法运算可以实现掩模操作,即屏蔽掉图像的某些部分;除法运算可用于校正成像设备的非线性影响,这在特殊形态的图像处理中常常用到。
五、实验过程1、设置两幅图像的大小,使其相等;2、读取两幅图像;3、利用四个函数实现图像的加减乘除;4、记录实验结果,观察结果的不同。
实验二图像几何变换
实验二、图像几何变换班级: 学号: 姓名:实验时间: 实验学时:2学时一、实验目的1、结合实例学习如何在视频显示程序中增加图像处理算法;2、理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用。
二、实验原理1、初始坐标为(x , y )的点经过平移(0x ,0y ),坐标变为('x ,'y ),两点之间的关系为:⎩⎨⎧+=+=00''y y y x x x ,以矩阵形式表示为:⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 0y 1 0 0 11''00y x x y x2、图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为: ⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 1 0 0 0 11''y x y x ⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 1- 0 0 0 11''y x y x 3、图像缩小和放大变换矩阵相同:⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 0 0 0 1''y x y x S S y x 当1 ,1≤≤y x S S 时,图像缩小;1 ,1≥≥y x S S 时,图像放大。
4、图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定角度。
其变换矩阵为:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡11 0 00 cos sin 0 sin cos 1''y x y x θθθθ 该变换矩阵是绕坐标轴原点进行的,如果是绕一个指定点(b a ,)旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新的坐标原点。
三、 实验步骤1、启动MATLAB 程序,对图像文件分别进行生成、失真和校正;(参考教材115页,例5.8,例5.9)。
实验二图像基本操作
实验二图像基本操作一、实验目的1、熟悉及掌握图像的采样原理,实现图像的采样过程,进行图像的灰度转换。
2、理解直方图的概念及应用,实现图像直方图的显示,及通过直方图均衡和直方图规定化方法对图像进行修正。
二、实验环境MATLAB 6.5以上版本、WIN XP或WIN2000计算机三、相关函数图像的增强1、直方图imhist函数用于数字图像的直方图计算或显示,imhist(I, n)计算和显示图像I的直方图,n为指定的灰度级数目,默认为256。
如果I是二值图像,那么n仅有两个值。
[counts,x] = imhist(...)返回直方图数据向量counts,相应的色彩值向量x。
如:i=imread('e:\w01.tif');imhist(i);2 、直方图均衡化histeq函数用于数字图像的直方图均衡化,J = histeq(I, n) 均衡化后的级数n,缺省值为64。
J = histeq(I, hgram) "直方图规定化",即将原是图象I 的直方图变换成用户指定的向量hgram (即指定另一幅图像的直方图数据向量)。
如:i=imread('e:\w01.tif');j=histeq(i,N);对图像i执行均衡化,得到具有N个灰度级的灰度图像j,N缺省值为643、灰度调整imadjust函数用于数字图像的灰度或颜色调整,J = imadjust(I) 将灰度图像I 中的亮度值映射到J 中的新值并使1%的数据是在低高强度和饱和,这增加了输出图像J 的对比度值。
J = imadjust(I,[low_in; high_in],[low_out; high_out])将图像I中的亮度值映射到J中的新值,即将low_in至high_in之间的值映射到low_out至high_out之间的值。
low_in 以下与high_in 以上的值被剪切掉了,也就是说,low_in 以下的值映射到low_out,high_in 以上的值映射到high_out。
实验报告二 Matlab图像代数运算和几何变换
实验二Matlab图像代数运算和几何变换一、实验目的1、掌握不同图像类型的转换2、掌握图像代数运算和几何变换的方法;3、掌握灰度级插值法的实验方法。
二、实验内容1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(p69-73);2、练习课本6.3.2(p139-p143)图像代数运算的内容;3、练习图像平移 (p148),图像比例变换(p153),图像旋转(p156),图像镜像变换(p158),图像切割(p160)Matlab实现例题;4、练习灰度级插值法(p171)。
三、实验步骤和结果1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(1)mat2gray()函数I=imread('rice.png');>> J=filter2(fspecial('sobel'),I);>> K=mat2gray(J);>> imshow(I);>> figure,imshow(K)(2)、grayslice()函数>> I=imread('snowflakes.png');>> X=grayslice(I,16);>> imview(I)imview(X,jet(16))(3)、rgb2ind()函数> RGB=imread('peppers.png');>> imshow(RGB);>> figure,imshow(RGB)>> [X,map]=rgb2ind(RGB,128);>> figure,imshow(X,map) (4)、im2bw()函数>> load trees>> BW=im2bw(X,map,0.4);>> figure,imshow(X,map)>> figure,imshow(BW)(5)、ind2gray()函数load trees>> I=ind2gray(X,map);>> figure,imshow(X,map)>> figure,imshow(I)(6)、dither()函数>> RGB=imread('peppers.png'); >> [X,map]=rgb2ind(RGB,256); >> I=dither(RGB,map);>> BW=dither(I);>> imshow(RGB,map);>> figure,imshow(RGB,map); >> figure,imshow(BW)Result:(1)转换后图像(2)索引色图像(3)索引色图像(4)索引色图像(4)二值化后的图像(5)转换后的灰度图像(6)索引色图像(6)抖动转换图像2、练习课本6.3.2(p139-p143)图像代数运算的内容(1)加法运算I=imread('rice.png');>> figure(1),imshow(I,[])>> I2=imread('cameraman.tif')>> figure(2),imshow(I2,[])>> K=imadd(I,I2,'uint16');>> figure(3),imshow(K,[])>> I=imread('lena.bmp');>> I2=imadd(I,50);>> figure(1),imshow(I)>> figure(2),imshow(I2)(2)、减法运算>> I=imread('rice.png'); >> I2=imread('cameraman.tif'); >> I3=imsubtract(I,I2);>> figure,imview(I3)(3)乘法&除法运算>> I=imread('lena.bmp');>> I2=immultiply(I,0.5);>> figure,imshow(I)>> figure,imshow(I2)>> I3=immultiply(I,1.5);>> figure,imshow(I3)>> I4=imdivide(I,0.5);>> figure,imshow(I4)>> I5=imdivide(I,1);>> figure,imshow(I5)Result:(1)加法运算后的图像(1)加入常数后的图像(2)减法运算(3)乘以0.5后的图像乘以1后的图像除以0.5后的图像除以1后的图像3、练习图像平移 (p148),图像比例变换(p153),图像旋转(p156),图像镜像变换(p158),图像切割(p160)Matlab实现例题;(a)图像平移>> I=imread('trees.tif');>> figure,imshow(I)>> I=double(I);>> I_movesult=zeros(size(I));>> H=size(I);>> Move_x=50;>> Move_y=50;>>I_movesult(Move_x+1:H(1),Move_y+1:H(2))=I(1:H(1)-Move_x,1:H(2)-Move_y);>> figure,imshow(uint8(I_movesult))(b)图像比例变换J=imread('trees.tif');>> figure,imshow(J);>> X1=imresize(J,2);>> X2=imresize(J,0.5);>> figure,imshow(X1)>> figure,imshow(X2)(C)图像旋转变换>> I=imread('peppers.png');>> figure,imshow(I)>> X1=imrotate(I,30,'nearest');>> figure,imshow(uint8(X1))>> X2=imrotate(I,45,'nearest');>> figure,imshow(uint8(X2))>> X3=imrotate(I,60,'nearest');>> figure,imshow(uint8(X3))>> X4=imrotate(I,90,'nearest');>> figure,imshow(uint8(X4))(d)图像镜像变换>> I=imread('forest.tif');>> I=double(I);>> figure,imshow(uint8(I));>> H=size(I);>> figure(2),>> I2(1:H(1),1:H(2))=I(H(1):-1:1,1:H(2));>> imshow(uint8(I2));>> figure,imshow(uint8(I2));>> I3(1:H(1),1:H(2))=I(1:H(1),H(2):-1:1);>> figure,imshow(uint8(I3));>> I4(1:H(1),1:H(2))=I(H(1):-1:1,H(2):-1:1);>> figure,imshow(uint8(I4));(e)图像切割>> I1=imread('peppers.png');>> I2=imcrop(I1,[75 68 220 100]);>> imview(I2)I3=imcrop(I1,[30 40 120 100]);>> imview(I3)(a)平移后的图像(b)放大后图像(b)缩小后的图像(c)旋转30°后的图像旋转45°后的图像旋转60°后的图像旋转90°后的图像(d)原始图像垂直镜像水平镜像对角镜像(e)原始图像一次切割后图像二次切割后图像4、练习灰度级插值法(p171)>> I=imread('lena.bmp');>> X1=imresize(I,1);>> X2=imresize(I,1,'bilinear');>> X3=imresize(I,1,'bicubic');>> figure,imshow(X1)>> figure,imshow(X2)>> figure,imshow(X3)最近邻差值法双线性插值法三次插值法四、实验体会在本次实验中掌握不同图像类型的转换,掌握了转换函数及其语法格式,如ind2rgb()函数将索引图像转换成真彩色。
图像比值运算实验报告
图像比值运算实验报告引言图像是由像素组成的,每个像素包含着图像的不同信息。
图像比值运算是指对图像中的像素进行比值运算,以获得新的图像。
图像比值运算在图像处理领域有着广泛的应用,如图像增强、图像分割等。
本实验旨在通过比值运算对图像进行处理,探讨其效果和应用。
实验步骤1. 实验准备选择一张分辨率为512\*512的彩色图像作为实验对象。
将图像转化为灰度图像,以便进行后续的比值运算。
2. 图像比值运算选取两个图像A和B,分别表示该灰度图像的两个通道。
进行以下两种比值运算:a) 比值相除将图像A的像素值除以图像B的像素值,得到新的图像C。
即:C(x, y) = \frac{A(x, y)}{B(x, y)}其中,C(x, y)表示图像C在坐标(x, y)处的像素值。
b) 比值相减将图像A的像素值减去图像B的像素值,得到新的图像C。
即:C(x, y) = A(x, y) - B(x, y)3. 实验结果分析通过对比原始图像和比值运算后的图像,以及比较两种比值运算的结果,进行实验结果的分析。
原始图像![原始图像](original_image.png)比值相除结果![比值相除结果](division_result_image.png)比值相减结果![比值相减结果](subtraction_result_image.png)结果分析通过比较原始图像和比值运算后的图像,可以观察到以下现象:1. 比值相除结果:经过比值相除运算后的图像,颜色相对较亮的区域表示图像A的像素值相对较大,而颜色相对较暗的区域表示图像B的像素值相对较大。
这是因为比值相除会放大图像A和B像素值的差异。
这种比值相除结果有利于突出图像中的亮度差异。
2. 比值相减结果:经过比值相减运算后的图像,颜色为正值表示图像A的像素值较大,而颜色为负值表示图像B的像素值较大。
这是因为比值相减会强调图像A和B像素值的差异。
这种比值相减结果有利于突出图像中的亮度差异。
数字图像处理实验二
数字图像处理—实验二一.实验内容:⑴直方图均衡化(Histogram equalization),⑵直方图匹配(Histogrammatching),二.实验目的:加强直方图均衡化和直方图匹配的图像增强技术的认识和了解。
学会用Matlab中的下列函数对输入图像进行上述2类运算;感受各种不同的直方图图像增强处理方法对最终图像效果的影响。
Imhist;histeq;三.实验步骤:1.仔细阅读Matlab帮助文件中有关以上函数的使用说明,能充分理解其使用方法并能运用它们完成实验内容。
2.将mountain.jpg图像文件读入Matlab,对其作直方图均衡化。
显示运算前后该图像的直方图,处理后的图像和灰度变换函数。
figure;subplot(2,2,1);i1=imread('D:\images\mountain.jpg');i1=im2double(i1);imshow(i1);title('Input Image');subplot(2,2,2);imhist(i1);subplot(2,2,3);T1=histeq(i1);imshow(T1);title('Out Image');imwrite(T1,'adjusted.jpg','jpg');subplot(2,2,4);imhist(T1);3.对mountain.jpg 图像做直方图匹配运算,显示运算前后该图像的直方图,处理后的图像和灰度变换函数。
直方图反映灰度等级的分布情况,本实验指定的直方图如下:1400×rr ≤5 7000-310×r 5<r ≤20 900-5×r20<r ≤180 -1440+8×r 180<r ≤225 3060-12×r225<r ≤255%1 figure;subplot(2,3,1);i1=imread('D:\images\mountain.jpg'); i1=im2double(i1);imshow(i1);title('Input Image'); subplot(2,3,2); imhist(i1); %2n =subplot(2,3,3);r=[0:1:255];n=[r<=5].*(r.*1400)+[r>5].*[r<=20].*(7000-310.*r)+[r>20].*[r<=180]. *(900-5.*r)+[r>180].*[r<=225].*(8.*r-1440)+[r>225].*[r<=255].*(3060 -12.*r);plot(r,n);title('r-n');subplot(2,3,4);T1=histeq(i1,n);imshow(T1);title('Out Image');imwrite(T1,'adjusted.jpg','jpg');subplot(2,3,5);imhist(T1);4.利用mountain.jpg图像的直方图(imhist函数可生成),编写直方图均衡化函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二图像运算
一、实验目的
1.熟悉图像点运算和代数运算的实现方法
2.了解图像几何运算的简单应用
3.了解图像的邻域操作
4.掌握示例程序中各函数的作用及运用方法
二、实验内容
1. 图像点运算
读入图像‘rice.png’,通过图像点运算改变对比度。
rice=imread('rice.png');
subplot(131),imshow(rice)
I=double(rice); %转换为双精度类型
J=I*0.43+60;
rice2=uint8(J); %转换为uint8
subplot(132),imshow(rice2)
J=I*1.5-60;
rice3=uint8(J); %转换为uint8
subplot(133),imshow(rice3)
2. 图像的代数运算
图像加法运算
I=imread('rice.png');
imshow(I)
J=imread('cameraman.tif');
figure,imshow(J)
K=imadd(I,J);
figure,imshow(K)
K2=imadd(I,J,'uint16');
figure,imshow(K2,[])
RGB=imread('flowers.tif');
RGB2=imadd(RGB,50);
imshow(RGB)
figure,imshow(RGB2)
RGB3=imadd(RGB,100);
figure,imshow(RGB3)
图像减法运算
I=imread('rice.png');
imshow(I)
background = imopen(I,strel('disk',15)); %估计背景图像
figure, imshow(background);
I2=imsubtract(I,background); %从原始图像中减去背景图像
figure, imshow(I2)
图像乘法运算
I=imread('moon.tif');
J=immultiply(I,1.2);
K=immultiply(I,0.5);
imshow(I)
figure,imshow(J)
figure,imshow(K)
3. 图像的几何运算
在matlab环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。
图像缩放
I = imread('cameraman.tif');
figure,imshow(I);
scale = 0.5;
J = imres ize(I,scale);
figure,imshow(J);
读入图像‘trees.tif’,改变图像大小,分别将原图像放大1.5倍和缩小0.5倍。
I=imread('trees.tif');
J=imresize(I,1.25);
K=imresize(I,0.8);
imshow(I)
figure,imshow(J)
figure,imshow(K)
Y=imresize(I,[100,150]);
figure,imshow(Y)
在matlab环境中,程序首先读取图像,然后调用图像旋转函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif');
figure,imshow(I);
theta = 30;
K = imrotate(I,theta); % Try varying the angle, theta.
figure, imshow(K)
图像旋转
将图像顺时针和逆时针旋转任意角度,观察显示效果。
I=imread('trees.tif');
J=imrotate(I,30,'bilinear');
J1=imrotate(I,30,'bilinear','crop');
imshow(I)
figure,imshow(J)
figure,imshow(J1)
J2=imrotate(I,-15,'bilinear');
figure,imshow(J2)
图像剪切
通过交互式操作,从一幅图像中剪切一个矩形区域。
I=imread('trees.tif');
imshow(I);
I1=imcrop;
figure,imshow(I1)
I2=imcrop(I,[30 60 120 160]);
figure,imshow(I2)
4. *图像的邻域操作
读入图像‘tire.tif’,分别使用函数nlfilter和blkproc对图像进行滑动邻域操作和分离邻域操作。
I=imread('tire.tif');
f=inline('max(x(:))'); %构造复合函数,请查明该函数的作用
I2=nlfilter(I,[3 3],f); %滑动邻域操作,请查明该函数的作用
imshow(I)
figure,imshow(I2)
I=imread('tire.tif');
f=inline('uint8(round(mean2(x)*ones(size(x))))'); %构造复合函数
I2=blkproc(I,[8 8],f); %滑动邻域操作,请查明该函数的作用
imshow(I)
figure,imshow(I2)
三、实验报告要求
1、描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果和源代码,并进行必
要的讨论,必须包括原始图像及其计算/处理后的图像。
2、按上机报告的撰写规范完成实验报告。
报告不得相互抄袭或拷贝,否则一律不及格。
3、实验报告至少包括以下内容:
①实验目的;②实验内容和步骤;③实验结果注:实验时间为上机时间
4、实验报告由每班学习委员统一收齐,并于下一次实验上课的时候上交。
5、每次实验必须自己保存好实验结果,以备下次实验时使用。
四、思考题
1点运算和代数运算的实现方法各是怎样的?。