matlab 图像几何变换+答案
matlab图像的几何变换
实验三 图像的几何运算一、实验目的1、 理解几何运算的基本概念与定义;2、 掌握在MA TLAB 中进行插值的方法3、 运用MATLAB 语言进行图像的插值缩放和插值旋转。
二、实验原理插值是常用的数学运算,通常是利用曲线拟合的方法,通过离散的采样点建立一个连续函数来逼近真实的曲线,用这个重建的函数便可以求出任意位置的函数值。
最近邻插值是最简便的插值,在这种算法中,每一个插值输出像素的值就是在输入图像中与其最临近的采样点的值。
该算法的数学表示为:()()k f x f x = 如果1111()()22k k k k x x x x x -++<<+ 最近邻插值是工具箱函数默认使用的插值方法,而且这种插值方法的运算量非常小。
不过,当图像中包含像素之间灰度级变化的细微结构时,最近邻插值法会在图像中产生人工的痕迹。
双线性插值法的输出像素值是它在输入图像中2×2领域采样点的平均值,它根据某像素周围4个像素的灰度值在水平和垂直两个方向上对其插值。
设''''1,1,,m i m n j n a i m b j n <<+<<+=-=-,'i 和'j 是要插值点的坐标,则双线性插值的公式为:''(,)(1)(1)(,)(1)(1,)(1)(,1)(1,1)g i j a b g m n a b g m n a bg m n abg m n =--+-++-++++ 双三次插值的插值核为三次函数,其插值邻域的大小为4×4。
它的插值效果比较好,但相应的计算量也比较大,在这里不做讨论。
1、图像的缩放imresize 函数的语法格式为:B = imresize(A, m, method)2、图像的旋转imrotate 的语法格式为:B = imrotate(A, angle, method)三、实验内容及要求1. 读出girl.bmp 图像并显示。
基于MATLAB图像处理作业及解答
实验三图像几何变换一、实验目的1.掌握图像的几何变换,其中包括裁剪、水平镜像、垂直镜像、转置、缩放、旋转的原理。
2. 使用maketform,imtransform,imresize,imrotate函数完成不同的几何变换。
3. 了解movie, getframe,rgb2gray函数。
二、实验内容1.运用imcrop函数分别获取earth.jpg图像的不同部分且在同一图形窗口显示(图像被均匀分成2*2块)。
2.使用函数maketform和imtransform,完成对earth.jpg图像的水平、垂直和转置的变化。
3.使用imresize函数对earth.jpg图像进行1.5倍和0.5倍的缩放变化,且显示变化后图像。
4.使用imrotate函数对earth.jpg图像进行顺时针45度和逆时针45度的变化,且显示变化后图像。
5.制作教材31页三幅图像,且验证该实例程序。
6.验证教材33页例1-20和例1-22三、实验步骤(解答)第一题解答:I=imread('C:\earth.jpg');I1=imcrop(I,[0 0 255 127]);I2=imcrop(I,[256 128 255 127]);I3=imcrop(I,[256 0 255 127]);I4=imcrop(I,[0 128 255 127]);subplot(2,2,1);imshow(I1);subplot(2,2,4);imshow(I2);subplot(2,2,2);imshow(I3);subplot(2,2,3);imshow(I4);第二题解答:A=imread('C:\earth.jpg');[height,width,dim]=size(A);tform=maketform('affine',[-1 0 0;0 1 0;width 0 1]);B=imtransform(A,tform,'nearest');tform2=maketform('affine',[1 0 0;0 -1 0;0 height 1]);C=imtransform(A,tform2,'nearest');subplot(1,3,1),imshow(A);title('Ô-ͼÏñ');subplot(1,3,2),imshow(B);title('ˮƽ¾µÏñ');subplot(1,3,3),imshow(C);title('´¹Ö±¾µÏñ');第三题解答:c=imread('C:\earth.jpg');c2=imresize(c,1.5);c3=imresize(c,0.5);figure,imshow(c2);figure,imshow(c3);第四题解答:A=imread('C:\earth.jpg');B=imrotate(A,45,'nearest','crop');C=imrotate(A,-45,'nearest','crop');subplot(1,3,1),imshow(A);title('Ô-ͼÏñ');subplot(1,3,2),imshow(B);title('ÄæʱÕëÐýת45¶È'); subplot(1,3,3),imshow(C);title('˳ʱÕëÐýת45¶È');第五题解答:for i=1:3k=int2str(i);k1=strcat('c:\',k,'.png');a1=imread(k1);image(a1);m(:,i)=getframe;endmovie(m,10)第六题解答:1-20I=imread('C:\earth.jpg');I1=I(:,:,1);s=size(I1);a=ones(s(1),s(2));I2=double(I1);for i=1:250I2(:,:)=I2(:,:)-a;I(:,:,1)=I2(:,:);imshow(I);end1-22I=imread('C:\earth.jpg');I1=rgb2gray(I);s=size(I1);a=ones(s(1),s(2));I2=double(I1);for i=1:30I2(:,:)=I2(:,:)-a; imshow(I2);end。
Matlab期末复习提纲(答案)
1、图像的最小基本单位:像素2、根据每个像素所代表信息的不同,可将图像分为二值图像、灰度图像、RGB图像以及索引图象、多帧图像3、图像的空间分辨率是指图像中每单位长度所包含的像素或点的数目,常以像素/英寸为单位表示4、当高分辨率下的图像以低分辨率表示时,在同等的显示或者打印输出条件下,图像的尺寸变小,细节变得不明显;而当将低分辨率的图像放大,则会导致图像的细节仍然模糊5、了解相邻像素的概念。
依据标准的不同,我们可以关注像素P的4邻域和8邻域6、常见的几种距离函数:(1)欧氏距离:即距离等于r的像素形成以P为圆心的圆(2) D4距离(街区距离):即距离等于r的像素形成以P为中心的菱形(3) D8距离(棋盘距离):距离等于r的像素形成以P为中心的方形7、表2.5 提取矩阵元素或子块的方法8、表2.11 图像格式转换函数9、读取图像文件:I=imread;显示图像:imshow(I)10、图像和直方图的关系:多对111、图像的点运算:线性变换,对数变换,伽马变换,阈值变换,直方图均衡化,直方图规定化。
12、伽玛变换又称指数变换或幂次变换,是另一种常用的灰度非线性变换。
●γ>1时,图像的高灰度区域对比度得到增强。
●γ<1时,图像的低灰度区域对比度得到增强。
●γ=1时,这一灰度变换是线性的,即不改变原图像。
15、图像平移的变换公式书P68则平移之后的点坐标(x1,y1)变为用矩阵表示为对变换矩阵求逆,可以得到逆变换即16、表4.1 合法值17、图像镜像的变换公式●水平镜像的变换关系为对矩阵求逆得到●竖直镜像变换关系可形式化地描述如下。
逆运算为18、空间域图像增强:图像平滑,图像锐化。
19、图像平滑(低通滤波器),包括平均平滑和高斯平滑,中值滤波 20、图像锐化(高通滤波器),包括梯度算子、拉普拉斯算子、高提升滤波和高斯-拉普拉斯变换21、例5.1中的w 提供了一种平均的加权模式,首先在以点(x ,y )为中心3×3邻域内的点都参与了决定在新图像g 中(x ,y )点像素值的运算;而且所有系数都为1,表示它们在参与决定g (x ,y )值的过程中贡献(权重)都相同;最后前面的系数是要保证整个模板元素和为1,这里应为1/9,这样就能让新图像同原始图像保持在一个灰度范围中(如[0,255])。
matlab 图像的几何变换与彩色处理
实验四、图像的几何变换与彩色处理一、实验目的1理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用;2熟悉图像几何变换的MATLAB操作和基本功能3 掌握彩色图像处理的基本技术二、实验步骤1 启动MATLAB程序,读入图像并对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作%%%%%%平移>> flowerImg=imread('flower.jpg');>> se=translate(strel(1),[100 100]);>> img2=imdilate(flowerImg,se);>> subplot(1,2,1);>> imshow(flowerImg);>> subplot(1,2,2);>> imshow(img2);I1=imread('flower.jpg');I1=double(I1);H=size(I1);I2(1:H(1),1:H(2),1:H(3))=I1(H(1):-1:1,1:H(2),1:H(3)); I3(1:H(1),1:H(2),1:H(3))=I1(1:H(1),H(2):-1:1,1:H(3)); Subplot(2,2,1);Imshow(uint8(I1));Title('原图');Subplot(2,2,2);Imshow(uint8(I3));Title('水平镜像');Subplot(2,2,3);Imshow(uint8(I2));Title('垂直镜像');img1=imread('flower.jpg');figure,imshow(img1);%%%%%%缩放img2=imresize(img1,0.25);figure,imshow(img2);imwrite(img2,'a2.jpg');%%%%%%旋转img3=imrotate(img1,90); figure,imshow(img3); imwrite(img3,'a3.jpg');2 实验如下操作:(1)改变图像缩放比例f= imread('flower.jpg');T=[ 0.5 0 0; 0 0.5 0; 0 0 1];tform=maketform('affine',T);[g1,xdata1,ydata1]=imtransform(f,tform,'FillValue',255);T=[ 1 0 0; 0 1 0; 0 0 1];tform=maketform('affine',T);[g2,xdata2,ydata2]=imtransform(f,tform,'FillValue',255);T=[ 1.5 0 0; 0 1.5 0; 0 0 1];tform=maketform('affine',T);[g3,xdata3,ydata3]=imtransform(f,tform,'FillValue',255);hold onimshow(g3,'XData', xdata3, 'YData', ydata3)hold onimshow(g2,'XData', xdata2, 'YData', ydata2)hold onimshow(g1,'XData', xdata1, 'YData', ydata1)axis autoaxis on(2)改变图像的旋转角度,f= imread('flower.jpg');theta=3*pi/4;T=[cos(theta) sin(theta) 0; -sin(theta) cos(theta) 0; 0 0 1]; tform=maketform('affine',T);[g3,xdata3,ydata3]=imtransform(f,tform,'FillValue',255); theta=pi;T=[cos(theta) sin(theta) 0; -sin(theta) cos(theta) 0; 0 0 1]; tform=maketform('affine',T);[g4,xdata4,ydata4]=imtransform(f,tform,'FillValue',255); imshow(f);hold onimshow(g3,'XData', xdata3, 'YData', ydata3)hold onimshow(g4,'XData', xdata4, 'YData', ydata4)axis autoaxis on观察变换结果,要求把经过不同类型几何变换的图像和原图像在同一坐标系内显示输出(请参考课件或教材上的代码)3 读入一幅彩色图像,进行如下图像处理:(1)在RGB彩色空间中对图像进行模糊和锐化处理rgb= imread('flower.jpg');figure; imshow(rgb); title('原图');%平滑滤波r=rgb(:,:,1);g=rgb(:,:,2);b=rgb(:,:,3);m=fspecial('average',[8,8]);r_filtered=imfilter(r,m);g_filtered=imfilter(g,m);b_filtered=imfilter(b,m);rgb_filtered=cat(3,r_filtered,g_filtered,b_filtered);figure; imshow(rgb_filtered); title('模糊后');imwrite(rgb_filtered, 'RGB彩色空间模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(rgb,lapMatrix,'replicate');i_sharped=imsubtract(rgb,i_tmp);figure; imshow(i_sharped); title('锐化后'); imwrite(i_sharped, 'RGB彩色空间锐化后.jpg');(2)在HSI彩色空间中,对H分量图像进行模糊和锐化处理,转换回RGB格式并观察效果(3)在HSI彩色空间中,对S分量图像进行模糊和锐化处理,转换回RGB格式并观察效果(4)在HSI彩色空间中,对I分量图像进行模糊和锐化处理,转换回RGB格式并观察效果fc = imread('flower.jpg');h = rgb2hsi(fc);H = h (:,:,1);S = h (:,:,2);I = h (:,:,3);subplot(3,3,1);imshow(fc); title('原图');%平滑滤波m=fspecial('average',[8,8]);h_filtered=imfilter(H,m);img_h_filtered = cat(3,h_filtered,S,I);rgb_h_filtered = hsi2rgb(img_h_filtered);subplot(3,3,2);imshow(rgb_h_filtered); title('H分量模糊后');imwrite(rgb_h_filtered, 'H分量模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(H,lapMatrix,'replicate');H_sharped=imsubtract(H,i_tmp);img_h_sharped = cat(3,H_sharped,S,I);rgb_h_sharped = hsi2rgb(img_h_sharped);subplot(3,3,3); imshow(rgb_h_sharped); title('H分量锐化后'); imwrite(rgb_h_sharped, 'H分量锐化后.jpg');subplot(3,3,4);imshow(fc); title('原图');%平滑滤波m=fspecial('average',[8,8]);s_filtered=imfilter(S,m);img_s_filtered = cat(3,H,s_filtered,I);rgb_s_filtered = hsi2rgb(img_s_filtered);subplot(3,3,5);imshow(rgb_s_filtered); title('S分量模糊后'); imwrite(rgb_s_filtered, 'S分量模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(S,lapMatrix,'replicate');s_sharped=imsubtract(S,i_tmp);img_s_sharped = cat(3,H,s_sharped,I);rgb_s_sharped = hsi2rgb(img_s_sharped);subplot(3,3,6); imshow(rgb_s_sharped); title('S分量锐化后'); imwrite(rgb_s_sharped, 'S分量锐化后.jpg');subplot(3,3,7);imshow(fc); title('原图');%平滑滤波m=fspecial('average',[8,8]);i_filtered=imfilter(I,m);img_i_filtered = cat(3,H,S,i_filtered);rgb_i_filtered = hsi2rgb(img_i_filtered);subplot(3,3,8);imshow(rgb_i_filtered); title('I分量模糊后'); imwrite(rgb_i_filtered, 'I分量模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(I,lapMatrix,'replicate');i_sharped=imsubtract(I,i_tmp);img_i_sharped = cat(3,H,S,i_sharped);rgb_i_sharped = hsi2rgb(img_i_sharped);subplot(3,3,9); imshow(rgb_i_sharped); title('I分量锐化后'); imwrite(rgb_i_sharped, 'I分量锐化后.jpg');由图看出I分量图像进行模糊和锐化处理的效果最好。
数字图像处理及应用(MATLAB)第1章习题答案
第一章:习题与思考题参考答案1-1 什么是数字图像? 数字图像处理有哪些特点?数字图像是将连续的模拟图像经过离散化处理后变成计算机能够辨识的点阵图像。
数字图像处理具有以下特点:(1)处理精度高,再现性好。
(2)易于控制处理效果。
(3)处理的多样性。
(4)数字图像中各个像素间的相关性大,压缩的潜力很大。
(5)图像数据量庞大。
(6) 占用的频带较宽。
(7) 图像质量评价受主观因素的影响。
(8)图像处理技术综合性强。
1-2 数字图像处理的目的及主要内容。
一般而言,对图像进行处理主要有以下三个方面的目的(1) 提高图像的视感质量,以达到赏心悦目的目的。
(2) 提取图像中所包含的某些特征或特殊信息,以便于计算机分析。
(3) 对图像数据进行变换、编码和压缩,以便于图像的存储和传输。
数字图像处理的主要研究内容:根据其主要的处理流程与处理目标大致可以分为图像信息的描述、图像信息的处理、图像信息的分析、图像信息的编码以及图像信息的显示等几个方面。
如:图像数字化、图像增强、图像几何变换、图像复原、图像重建、图像隐藏、图像正交变换、图像编码、图像分析等。
1-3 数字图像处理的主要应用图像处理技术广泛用于众多的科学与工程领域,主要有:(1)生物医学领域中的应用(2)工业应用(3)遥感航天中的应用(4)军事、公安领域中的应用(5)其他应用,例如:图像的远距离通信;多媒体计算机系统及应用;服装试穿显示;办公自动化、现场视频管理1-4 在理想情况下获得一幅数字图像时,采样和量化间隔越小,图像的画面效果越好,当一幅图像的数据量被限定在一个范围内时,如何考虑图像的采样和量化使得图像的质量尽可能好。
一般,当限定数字图像的大小时, 为了得到质量较好的图像可采用如下原则: (1)对缓变的图像,应该细量化,粗采样,以避免假轮廓。
(2)对细节丰富的图像,应细采样,粗量化,以避免模糊(混叠)。
1-5 想想在你的工作和生活中,遇见过哪些数字化设备?它们的主要用途是什么?主要有以下几种数字化设备:(1) 图像采集卡通常图像采集卡安装于计算机主板扩展槽中,通过主机发出指令,将某一帧图像静止在存储通道中,即采集或捕获一帧图像,然后可对图像进行处理或存盘。
matlab图像几何变换和图像增强
一.图像几何变化(1)放大,缩小,旋转程序:I=imread('111.jpg');J=imresize(I,1.5);L=imresize(I,0.75);K=imrotate(I,35,'bilinear');subplot(221),subimage(I); title('原图像');subplot(222),subimage(J); title('放大后图像');subplot(223),subimage(L); title('缩小后图像');subplot(224),subimage(K);title('旋转后图像');二.图像频域变换(1)傅里叶变换真彩图像灰度图像傅里叶变换谱程序:I=imread('111.jpg');figure(1);imshow(I);B=rgb2gray(I);figure(2);imshow(B)D=fftshift(fft2(B));figure(3);imshow(log(abs(D)),[ ]);(2)离散余弦变换真彩图灰度图进行离散余弦变换后程序:RGB=imread('111.jpg');figure(1);imshow(RGB);G=rgb2gray(RGB);figure(2);imshow(G);DCT=dct2(G);figure(3);imshow(log(abs(DCT)),[]);三.图像增强:(1)指数变换程序:f=imread('111.jpg')f=double(f);g=(2^2*(f-1))-1;f=uint8(f);g=uint8(g);subplot(1,2,1),subimage(f);subplot(1,2,2),subimage(g);(2)直方图均衡程序:I=imread('111.jpg');I=rgb2gray(I);figuresubplot(221);imshow(I);subplot(222);imhist(I)I1=histeq(I);figure;subplot(221);imshow(I1)subplot(222);imhist(I1)(3)空域滤波增强锐化滤波(Roberts算子Sobel算子拉普拉斯算子)程序:I=imread('000.tif');J1=edge(I,'roberts'); %Roberts算子figure;imshow(uint8(I));title('原图');figure;subplot(221);imshow(J1);title('Roberts算子锐化'); J2=fspecial('Sobel'); %Sobel算子J2=J2';TJ1=filter2(J2,I);J2=J2';TJ2=filter2(J2,I);subplot(222),imshow(TJ1,[]),title('垂直模板'); subplot(223),imshow(TJ2,[]),title('水平模板');f=fspecial('laplacian'); %拉普拉斯算子J3=imfilter(I,f);subplot(224),imshow(J3);title('拉普拉斯算子');平滑滤波及中值滤波程序:I=imread('000.tif');J=imnoise(I,'salt & pepper',0.02);subplot(221),imshow(I);title('原图像');subplot(222),imshow(J);title('添加椒盐噪声图像');k1=filter2(fspecial('average',3),J); %进行3*3模板平滑滤波k2=medfilt2(J); %进行3*3模板中值滤波subplot(223),imshow(uint8(k1));title('3*3模板平滑滤波');subplot(224),imshow(k2);title('3*3模板中值滤波');(4)频域滤波增强低通滤波程序:I=imread('000.tif');J=imnoise(I,'salt & pepper',0.02);subplot(121),imshow(J);title('添加椒盐噪声图像');J=double(J);f=fft2(J); %采用傅里叶变换g=fftshift(f) %数据矩阵平衡[M,N]=size(f);n=3;d0=20n1=floor(M/2)n2=floor(N/2)for i=1:M %进行低通滤波for j=1:Nd=sqrt((i-n1)^2+(j-n2)^2)h=1/(1+(d/d0)^(2*n));g1(i,j)=h*g(i,j);endendg1=ifftshift(g1);g1=uint8(real(ifft2(g1)));subplot(122);imshow(g1);title('低通滤波后的图像'); %显示低通滤波结果 高通滤波程序:I=imread('000.tif');J=imnoise(I,'salt & pepper',0.02);subplot(221),imshow(J);title('添加椒盐噪声图像');J=double(J);f=fft2(J); %采用傅里叶变换[M,N]=size(f);n=2;d0=20n1=floor(M/2)n2=floor(N/2)for i=1:M %进行巴特沃斯高通滤波及巴特沃斯高通加强滤波for j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d==0;h1=0;h2=0.5;elseh1=1/(1+(d0/d)^(2*n));h2=1/(1+(d0/d)^(2*n))+0.5;endgg1(i,j)=h1*g(i,j);gg2(i,j)=h2*g(i,j);endendgg1=ifftshift(gg1);gg1=uint8(real(ifft2(gg1)));subplot(222);imshow(gg1);title('巴特沃斯高通滤波后的图像'); %显示结果gg2=ifftshift(gg2);gg2=uint8(real(ifft2(gg2)));subplot(223);imshow(gg2);title('巴特沃斯高通滤波加强后的图像');同态滤波程序:J=imread('000.tif');subplot(121);imshow(J);title('原图像');J=double(J);f=fft2(J); %采用傅里叶变换[M,N]=size(f);d0=10;r1=0.5;rh=2c=4;n1=floor(M/2);n2=floor(N/2);for i=1:M %进行同态滤波for j=1:Nd=sqrt((i-n1)^2+(j-n2)^2)h=(rh-r1)*(1-exp(-c*(d.^2/d0.^2)))+r1;g(i,j)=h*g(i,j);endendg=ifftshift(g);g=uint8(real(ifft2(g)));subplot(122);imshow(g);title('同态滤波后的图像'); %显示同态滤波结果。
matlab数字图像处理图像运算+答案
matlab数字图像处理图像运算+答案实验⼆:图像运算⼀、实验⽬的掌握MATLAB语⾔中图像数据的读取、显⽰与保存⽅法;掌握统计图像灰度直⽅图的⽅法理解直⽅图均衡的原理和作⽤,掌握图像直⽅图均衡化的⽅法理解图像点运算、代数运算、⼏何运算的基本定义和常见⽅法进⼀步熟悉了解MATLAB语⾔的应⽤⼆、知识要点1.数据类型及图像类型间的基本转换函数数据类转换:B = data_class_name(A);2.imhist(H);%显⽰a的直⽅图histeq(H); %将图像a进⾏直⽅图均衡化adapthisteq(H); %将图像a进⾏直⽅图均衡化3.图像的点运算点运算是通过对图像中每个像素值进⾏计算,改善图像显⽰效果的操作,也称对⽐度增强或对⽐度拉伸或灰度变换。
可以表⽰为B(x,y)=f(A(x,y)).进⾏逐点运算,输⼊映射为输出,不改变图像像素的空间关系。
Y=aX+b %线性点运算Y=X+aX(max(X)-X) %⾮线性点运算4.代数运算代数运算是指对两幅输⼊图像进⾏点对点的加、减、乘或除运算⽽得到输出图像的运算。
四种图像代数运算的数学表达式如下:C(i,j)=A(i,j)+B(i,j) C=imadd(A,B)C(i,j)=A(i,j)-B(i,j) C=imsubtract(A,B);C(i,j)=A(i,j)*B(i,j) C=immultiply(A,B)C(i,j)=A(i,j)/B(i,j) C=imdivide(A,B)5.图像加噪函数imnoise(参阅matlab help)imnoise的语法格式为J = imnoise(I,type)J = imnoise(I,type,parameters)其中J=imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。
参数type 和parameters⽤于确定噪声的类型和相应的参数。
J = imnoise(I,'gaussian',m,v) %加⼊均值m,⽅差为v的⾼斯噪声,m默认值0,v默认值0.01J = imnoise(I,'poisson') %加⼊泊松分布的噪声J = imnoise(I,'salt & pepper',d)%加⼊密度为d的椒盐噪声,d的默认值为0.05 J = imnoise(I,'speckle',v) %加⼊均值0,⽅差为v的乘性噪声三、实验内容1、将给定的Couple.bmp图像⽂件读出并显⽰,显⽰其灰度直⽅图,分别⽤histeq、adapthiateq函数将其直⽅图均衡化,观察均衡后的图像及其直⽅图。
4第四章图像的几何变换详述
j
'
i
sin
j
cos
• 这个计算公式计算出的值为小数,而坐标值为正整数。 • 计算结果中的新坐标值可能超过原图像所在的空间范围。
图像旋转时,为了避免信息的丢失,应当扩 大画布,并将旋转后的图像平移到新画布上。
图像的旋转板例书:题计算像素(1,1)
的旋转新坐标
30
i ' 0.866i 0.5 j
例题: 缩小6×6的图像,设k1=2/3, k2=3/4;
原图像f(i, j)=f i j
新图像大小:k1M×k2N =4×5
f11 f12 f13 f14 f15 ff1166
f21 f22 f23 f24 f25 ff2266 采样间隔: Δi=3/2, 新图像g(i, j)
f31 f32 f33 f34 f35 ff3366 Δj=4/3
subplot(2,2,1); % 将当前图像窗口划分为2行2列,即
4个子窗口,要显示的内容在第一个
子窗口中显示
例 如:
关于图像的函数和命令 (3)
im2double(F); %将图象数组F转换成double精度类型 im2uint8(F); %将图象数组F转换成unit8类型 im2uint16(F); %将图象数组F转换成unit16类型
根据:g(i,j)=f(Δi×i, Δj×j) 对于:i=1,j=1 → g(1,1)=f (1×3/2, 1×4/3)=f 21 对于:i=2,j=1 → g(2,1)=f (2×3/2, 1×4/3)=f 31
……………………………
注意:不按比例 缩小会导致几何 畸变。
二、基于局部均值的的图像缩小方法
该方法通过对原图像的均匀采样该方法通过对原图像的均匀采样等间隔等间隔地选取一部分像素地选取一部分像素从而获得小尺寸图像的数据从而获得小尺寸图像的数据并且尽量保持原有图像特征不丢失并且尽量保持原有图像特征不丢失
图文详解matlab原始处理图像几何变换
图⽂详解matlab原始处理图像⼏何变换⽬录(⼀)图像⼏何变换理论知识(1)图像的平移与⽐例(2)关于旋转变换(3)关于对称变换(4)复合变换(⼆)matlab编程实现变换(1)对图像的理解(2)⽐例变换(3)对称变换总结(⼀)图像⼏何变换理论知识(1)图像的平移与⽐例图像的平移很简单,平移前后的坐标分别为(x,y)和(x',y'),则满⾜的关系式为x'= x +Tx;y'= y +Ty;其中Tx与Ty分别为对应的偏移量。
图像的⽐例也很简单,可以描述为:x'=S_x * x; y'=S_y * y;那么上述的关系怎么⽤⼀个矩阵来表⽰呢?⼀个很重要的矩阵来了,那就是变换矩阵T,并且对于⼆维坐标下的点,⼀般转化为笛卡尔坐标系下进⾏计算,⽤⼀个三维点表⽰⼆维的,只不过把最后⼀项值置为1,这样⼀个⼆维坐标(x,y)就变为(x,y,1)了。
在把上述的平移等式关系转化为矩阵形式为:⽐例等式关系为:(2)关于旋转变换对于某个点,在坐标系中的变换为(旋转⾓度为θ,并且逆时针旋转为正):那么可以看出,这个时候对应的旋转矩阵为T就如图上所⽰。
(3)关于对称变换对称变换⽐较简单,还是以点的变换为例,⽐如变换前的点P(x,y)和变换后的点P'=(x',y'),那么对称变换包括点关于x 轴、y轴、原点、y=x、y=-x等等,点的变换可以⾃⼰推导下,这样也就可以得到对应的变换矩阵T了。
⽐如,关于x对称的话,T=[1,0,0;0,-1,0;0,0,1],关于原点对称的话,T=[-1,0,0;0,-1,0;0,0,1];关于y=x对称的话,T=[0,1,0;1,0,0;0,0,1];等等。
(4)复合变换下⾯再重点介绍下复合变换,因为有的变换不是简单的初等变换,但是有⼀点需要明确的是任何复合变换都可以⽤初等变换⼀步步变换⽽来。
⽐如前⾯的旋转变换,旋转点选取的是原点,这样才有的那个公式,那要是旋转点不是原点怎么办?⽐如任⼀点s(X_f,Y_f),那么点P绕着点s旋转⼀定的⾓度θ该怎么表⽰呢?这⾥就要把这个复合变换化成为3个简单的初等变换,具体步骤为:⾸先把s点平移操作⾄原点(这个过程中,相当于所有的点都按照⼀定的⽅向平移了),然后相当于在原点对平移后的P点进⾏旋转变换,变换完后再把这个店反平移回去,这样是不是就相当于完成了那个复合变换。
数字图像处理(MATLAB版)第5章 几何变换
f12
f1n 1 f 2 n 1 f nn 1
f 22 fn2
f1n f2n f nn
0 0 G 0 0
0 f11 f 21 f n1
0 f12
f 22 fn2
0 f1n 1 f 2 n 1 f nn 1
sin (5-36) cos
图像旋转角度用矩阵形式表示为 x cos sin x (5-37) y sin cos y
所以,图像旋转可以分解成三次图像的 错切来实现。
5.2.6 图像的镜像变换
5.4.1 画图软件中的图像扭曲 5.4.2 图像二维空间变换
5.4.1 画图软件中的图像扭曲
在图像处理软件中,都提供了图像扭曲 的功能。
a1 T T1T2 0 0 0 0 a2 0 d1 0 0 1 0 0 d2 0 0 a1a2 0 0 1 0 0 d1d 2 0 0 0 1
(5-54)
3.复合旋转
5.4 图像的几何变换
imcrop函数调用格式为:
● ● ● ● ● ● ● ● ● I2=imcrop(I) X2=imcrop(I, map) RGB2=imcrop(RGB) I2=imcrop(I, rect) X2=imcrop(X, map, rect) RGB2=imcrop(RGB, rect) […]=imcrop(x, y, …) [A, rect]=imcrop(…) [x,y, A, rect]=imcrop( …)
1.水平镜像
2.垂直镜像
3.对角镜像
数字图像处理实验06图像的几何变换
一、数字图像处理实验实验六 图像的几何变换一、实验目的学习和掌握图像几何空间变换和灰度插值的基本方法,对图像进行相应的几何变换操作。
二、实验内容1.编程实现图像的比例缩放。
2. 编程实现图像任意角度的旋转变换。
3. 分别用MATLAB 函数提供的三种插值方法实现图像的缩放和旋转。
三、实验原理图像的几何变换可以看成是像素在图像内的移动过程,该移动过程可以改变图像中物体对象(像素)之间的空间关系。
完整的几何运算需要由两个算法来实现:空间变换算法和灰度插值算法。
空间变换主要用来保持图像中曲线的连续性和物体的连通性,一般都采用数学函数形式来描述输入、输出图像相应像素间的空间关系。
空间变换一般定义为)],(),,([),(),(y x b y x a f y x f y x g =′′= (6.1)其中,f 表示输入图像,g 表示输出图像,坐标),(y x ′′指的是空间变换后的坐标,要注意这时的坐标已经不是原来的坐标),(y x 了,),(y x a 和),(y x b 分别是图像的x 和y 坐标的空间变换函数。
灰度级插值主要是对空间变换后的像素赋予灰度值,使之恢复原位置处的灰度值,在几何运算中,灰度级插值是必不可少的组成部分。
因为图像一般用整数位置处的像素来定义。
而在几何变换中,),(y x g 的灰度值一般由处在非整数坐标上的),(y x f 的值来确定,即g 中的一个像素一般对应于f 中的几个像素之间的位置,反过来看也是一样,即f 中的一个像素往往被映射到g 中的几个像素之间的位置。
下面介绍图像几何变换常用的方法。
1. 图像的缩放假设图像x 轴方向缩放比例fx ,y 轴方向缩放比例是fy ,那么原图中点),(00y x 对应于新图中的点),(11y x 的转换矩阵为:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡1100000010011y x f f y x y x (6.2) 其逆运算如下: ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡1100010********y x f f y x y x (6.3) 即: ⎩⎨⎧+=+=]5.0[]5.0[1010y x f y y f x x (6.4) 中括号表示对表达式取整。
MATLAB图像处理之几何变换 正、反向映射解释
如果我QQ不在线,请将问题发到我的邮箱,或者直接给我QQ留言,第 一时间答复你!简单问题请直接留言,复杂问题可以提供解决思路! 同探讨,共进步!
还可以为公司和科研单位设计各类算法,欢迎前来咨询! 郑重声明:本资源来源于网络,仅限交流使用,请勿用于商业用途!
MATLAB图像处理之几何变换 正、反向映射解释 - 八卦 & MATLAB - top9 - ... 页码,1/2
精通MATLAB语言,有MATLAB编程问题的朋友,请直接联系我! 联系方式: QQ:993878382 Email:993878382@ MATLAB博客:/46036333_d.html 更多学习资料和电子书,请直接访问我的博客!
和讯博友免费美国之旅全记录 晒一晒相机 11.1周一参考信息 走在深秋 浪漫理科——函数代表我的心~ 心仪之梦
[微博]IPAD该不该被征高额关税 南方金砖四国现正发售
高手教你暴跌中何时抢反弹
[微博]小贩对菜价上涨的超强分 财富人生 平安相伴
最新读者
大 名: top9 网 址: /top99/default.html 标 题: Re: MATLAB图像处理之几何变换 正、反向映射解释 内 容: 字数上限为2000字
发表评论 (不 (您
提交 (您的评论将有可能审核后才能发表)
和讯个人门户 v1.0 | 和讯家园 | 意见反馈
/43609790_d.html
数字图像几何变化matlab,数字图像处理及应用MATLAB第2章习题答案.doc
数字图像⼏何变化matlab,数字图像处理及应⽤MATLAB第2章习题答案.doc第⼆章:习题与思考题参考答案求⼆维连续函数的傅⾥叶变换。
图2-39是长⽅形图像。
图2-39 长⽅形图像离散傅⾥叶变换都有哪些性质?这些性质说明了什么?1.线性性质,说明函数和的傅⾥叶变换只需通过各函数的傅⾥叶变换的和求出;2.⽐例性质,说明了在空间⽐例尺度的展宽,相应于频域⽐例尺度的压缩;3.可分离性,说明⼀个⼆维的离散傅⾥叶变换可通过进⾏两次⼀维离散傅⾥叶变换来完成;4频率位移,说明当⽤乘以f(x,y),求乘积的傅⾥叶变换,可以使空间频率域u-v平⾯坐标系的原点从(0,0)平移到(u0,v0)的位置;5.周期性和共轭对称性,周期性说明F(u,v)是具有周期为N的周期性重复离散函数,共轭对称性说明变换后的幅值是以原点为中⼼对称;6旋转性质,说明如果f(x,y)在空间域中旋转⾓度,则相应的傅⾥叶变换F(u,v)在频率域中旋转同样的⾓度,反之亦然。
7.平均值说明f(x,y)的平均值等于其傅⾥叶变换F(u,v)在频率原点的值F(0,0)。
证明离散傅⾥叶变换的频率位移和空间位移性质。
证明:因为所以⼩波变换是如何定义的?⼩波分析的主要优点是什么?⼩波之所以⼩,是因为它有衰减性,即是局部⾮零的;⽽称为波,则是因为它有波动性,即其取值呈正负相间的振荡形式,将空间的任意函数f(t)在⼩波基下展开,称其为函数f(t)的连续⼩波变换。
⼩波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进⾏多尺度细化,最终达到⾼频处时间细分,低频处频率细分,能⾃动适应时频信号的要求从⽽可聚焦到信号的任意细节,解决了Fourier 变换的困难问题。
2-5 在图像缩放中,采⽤最近邻域法进⾏放⼤时,如果放⼤倍数太⼤,可能会出现马赛克效应,这个问题有没有办法解决,或者有所改善。
可以利⽤线性插值法,当求出的分数地址与像素点不⼀致时,求出周围四个像素点的距离⽐,根据该⽐率, 由四个邻域的像素灰度值进⾏线性插值。
数字图像处理期末试题参考答案
1.用matlab进行图像变换,公式:s=L-1-r答:clear;clc;f=imread('source.jpg');%该图像是一幅灰度图像subplot(211);imshow(f);title('原始灰度图像');s=f;f=double(f);s=256-1-f;subplot(212);imshow(uint8(s),[]);title('变换后的图像')2.图1显示了512×512像素尺寸的黑色背景叠加一个20×20像素尺寸的白色矩形。
此图像在傅里叶变换的计算之前乘以(-1)x+y,从而可以使频率关于中心谱对称,用matlab对图1进行变换答:编程f=zeros(512,512);f(246:266,246:266)=1;F=fft2(f,512,512) ;F2=fftshift(F);imshow(log(abs(F2)),[-1 5]);colormap(jet);colorbar;-0.500.511.522.533.544.53.试给出把灰度范围[0,10]伸长为[0,15],把范围[10,20]伸长为[15,25],并把范围[20,30]压缩为[25,30]的变换方程。
答:由()[]c a y x f ab cd y x g +---=,)(),(得 (1)、3(,)(,)2g x y f x y ⎡⎤=*⎢⎥⎣⎦(2)、5),(),(+=y x f y x g (3)、15),(5.0),(+=y x f y x g4、设一幅图像具有表1所示的概率分布,对其分别进行直方图均衡化和规定化,要求规定化的图像具有表2所示的灰度级分布。
表1表2(1)、直方图均衡化处理结果如下。
计算机图形学几何变换练习(答案)
如图所示,求P0(4,1)、P1(7,3)、P2(7,7)、P3(1,4)构成的四边形绕Q(5,4)逆时针旋转45°的变换矩阵和变换后图形的顶点坐标。
*
*
对多边形A(-1,0)B(0,-2),C(1,0),D(0,2
)相对于直线y=x+2做对称变换,求变换
矩阵和变换后图形的顶点坐标。
1 2 3 4 5 6 7 8
将正方形ABCO 各点沿图所示的(0,0)→(1,1)方向进行拉伸,结果为如图所示的,写出其变换矩阵和变换过程。
=
可得Sx=2 Sy=1
屏幕客户区xOy 坐标系的原点位于左上角,x 轴水平向右,y 轴垂直向下。
建立新坐标系x ’O ’y ’,原点在屏幕客户区坐标是(a,b ),x ’轴水平向右,y ’轴垂直向上,如图所示。
已知点p 在x ’O ’y ’中的坐标是( x ’,y ’),求它在xOy 坐标系下的坐标
,
写出其变换矩阵和变换过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四:图像几何变换(编程报告)
一、实验目的
(1)学习几种常见的图像几何变换,并通过实验体会几何变换的效果;
(2)掌握图像平移、剪切、缩放、旋转、镜像、错切等几何变换的算法原理及编
程实现
(3)掌握matlab编程环境中基本的图像处理函数
(4)掌握图像的复合变换
二、涉及知识点
(1)图像几何变换不改变图像像素的值,只改变像素所在的几何位置
(2)图像裁剪imcrop函数,语法格式为:
B=imcrop(A);交互式用鼠标选取区域进行剪切
B=imcrop(A,[left top right bottom]);针对指定的区域[left top right bottom]进行剪切
(3)图像缩放imresize函数,语法格式为:
B = imresize(A,m,method)
这里参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。
B = imresize(A,m,method)返回原图A的m倍放大的图像(m小于1时效果是
缩小)。
(4)图像旋转imrotate函数,语法格式为:
B = imrotate(A,angle,’crop’),参数crop用于指定裁剪旋转后超出图像的部分。
三、实验内容
(1)将图像hehua.bmp裁剪成200X200大小
(2)制作动画,将一幅图像逐渐向左上角平移移出图像区域,空白的地方用白色
填充
(3)利用剪切图像函数制作动画
(4)将图像分别放大1.5倍和缩小0.8倍,插值方法使用双线性插值法,分别显
示图像。
(5)将图像水平镜像,再顺时针旋转45度,显示旋转后的图像。
(6)将图像分别进行水平方向30度错切,垂直方向45度错切,分别显示结果
四、实验环境
Windows下matlab编程环境
五、实验源代码及结果
1.f=imread('hehua.bmp');
figure;
imshow(f);
title('原图');
f2=imcrop(f,[50,50,250,250]);
figure;
imshow(uint8(f2));
title('裁剪后');
imwrite(f2,'d:/5/hehua1.bmp');
2.f=imread('hehua1.bmp');
[m,n,x]=size(f);
f=double(f);
for i=1:10
mx=10*i;
my=10*i;
g=zeros(m,n,x)+255;
%g(mx+1:m,my+1:n,1:x)=f(1:m-mx,1:n-my ,1:x);
g(1:m-mx,1:n-my ,1:x)=f(mx+1:m,my+1:n,1:x);
figure;
imshow(uint8(g));
end
3.f=imread('hehua1.bmp');
[m,n]=size(f);
for i=50:10:200
m=i;
n=i;
f2=imcrop(f,[n,n,m,m]);
figure;
imshow(uint8(f2));
end
4.f=imread('hehua1.bmp');
figure;
imshow(f);
title('原图');
f=double(f);
f1=imresize(f,1.5,'bilinear');
figure;
imshow(uint8(f1));
title('放大1.5倍');
f2=imresize(f,0.8,'bilinear');
figure;
imshow(uint8(f2));
title('缩小0.8倍');
5.f=imread('hehua1.bmp');
subplot(131);
imshow(f);
title('原图');
[m,n,x]=size(f);
g=zeros(m,n,x);
for i=1:m
for j=1:n
for k=1:x
g(i,j,k)=f(i,n-j+1,k);
end
end
end
subplot(132);
imshow(uint8(g));
title('水平镜像');
f2=imrotate(g,45,'crop');
subplot(133);
imshow(uint8(f2));
title('顺时针旋转45度');
6.f=imread('hehua1.bmp');
subplot(131);
imshow(f);
title('原图');
h=size(f);
f1=zeros(h(1)+round(h(2)*tan(pi/6)),h(2),h(3));
for m=1:h(1)
for n=1:h(2)
f1(m+round(n*tan(pi/6)),n,1:h(3))=f(m,n,1:h(3));
end
end
subplot(132);
imshow(uint8(f1));
title('水平30度');
f2=zeros(h(1),h(2)+round(h(2)*tan(pi/4)),h(3));
for m=1:h(1)
for n=1:h(2)
f2(m,n+round(m*tan(pi/4)),1:h(3))=f(m,n,1:h(3));
end
end
subplot(133);
imshow(uint8(f2));
title('垂直45度');
六、心得体会。