数字图像处理作业

发布 2022-07-18 20:23:28 阅读 7676

1、使用最近邻插值对图像进行缩放。

1)、原理:以新图像的行和列创建一个新的图像矩阵(与原图像为k倍关系并想象其为一个一个的网格),将其反映射到原图像的矩阵网格中进行匹配。显然,收缩后的新图像的网格之间的像素小于原图像的像素间隔。

这时,在原图像中寻找最接近的像素作为新图像上该点的灰度值。

2)、程序流程图。

3)、matlab程序及运行结果。

function b=zjlsf(a,k)

k=3;a=imread(''读入原图并且显示出来。

figure;

imshow(a);

title('原图');

r,c]=size(a获得图像的大小。

r1=round(r*k将原图像的行和列分别变为原来的k倍。

c1=round(c*k);

b=zeros(r1,c1用新的行和列得到新的矩阵。

if k>0&k<5

for i=1:r1

for j=1:c1

i1=round(i/k); 将新图像上的点反映射回到原图像上。

j1=round(j/k);

if i1<1

i1=1;end

if j1<1

j1=1;end

b(i,j)=a(i1,j1); 用映射的点作为新图像的像素,完成最近邻插值。

endend

endb=uint8(b);

figure;

imshow(b);

title('最近邻缩放后的图像');

运行结果:2、使用双线性插值法对图像进行缩放。

1)、原理:以新图像的行和列创建一个新的图像矩阵(与原图像为k倍关系并想象其为一个一个的网格),将其反映射到原图像的矩阵网格中进行匹配。显然,收缩后的新图像的网格之间的像素小于原图像的像素间隔。

很有可能映射回去的像素点不是原来的整数点,则用四个最近邻的像素点去估计给定位置的灰度。双线性内插的公式:

2)程序流程图:

具体的matlab程序如下:

function b=sxx(a,k)

a=imread(''

figure;

imshow(a);

title('原图像');

k=1.5将**进行1.5倍放大。

w,h]=size(a得知图像的行和列。

m=round(k*w对其扩大后的行和列取整。

n=round(k*h);

b=zeros(m,n产生扩充后的图像背景。

for x=2:m-1避免取整时出现0的错误,以及溢出原图像矩阵范围。

for y=2:n-1

x0=x/k将新图像的坐标反映射回原图像。

y0=y/k;

if x0>w

x0=w;end

if y0>h

y0=h;end

if fix(x0)==x0&&fix(y0)==y0 %判断新图像的点在对应回去后是否恰好对应原图像。

b(x,y)=a(x0,y0若对应为原图像的点则直接赋值。

elsea=fix(x0对x0,y0进行逼零取整,为了下面进行双线性计算。

b=fix(y0);

x11=a(a,b方便公式表示,将四个点的坐标值赋值给四个变量。

x12=a(a,b+1

x21=a(a+1,b

x22=a(a+1,b+1);

b(x,y)=(b+1-y0)*(x0-a)*x21+(a+1-x0)*x11)+(y0-b)*(x0-a)*x22+(a+1-x0)*x12));

endend

endb=uint8(b将图像的数据类型进行转换。

figure;

imshow(b);

title('双线性插值后的放大图像');

运行结果如下:

3、使用最近邻元插值法对图像进行旋转。

1)、原理:由几何知识中的旋转公式可得到变换后的新坐标,再利用逆变换找到新坐标下映射到老坐标的坐标位置,即以及。根据新旧坐标之间的关系式使用最近邻元插值法把就图像相应坐标的像素值赋给对应的新坐标,以此来得到新图像的灰度值。

2)程序流程图:

具体matlab**如下:

function b = xuanzhuan(a,j)

a=imread(''

figure;

imshow(a);

title('原图像');将原图像进行显示。

r,c]=size (a);

j=90;t=j*pi/180; %获得旋转角度。

r1=3*max(r,c); 将图像进行扩充。

b= zeros(r1,r1);

b= uint8(b);

d=round(r1/2)-1;

for i=-d:d %新图像反映射回到原图像的坐标。

for j=-d:d

x=i*cos(t)-j*sin(t);

y=i*sin(t)+j*cos(t);

x=round(x);

y=round(y);

if x>=1&y>=1&x<=r&y<=c坐标平移后对其灰度赋值。

b(i+d+1,j+d+1)=a(x,y);

endend

end figure;

imshow(b);

title ('旋转后的图像');

运行结果如图。

数字图像处理作业

2017暑假小学期。专业。班级。姓名。学号。摘要 数字图像处理的目的是改善 质量,利用matlab设计几个简单的图像处理程序。该程序具备图像处理的日常功能 图像代数与几何运算 直方图与图像明暗关系分析 直方图均衡化 滤波器的使用与图像分割技术。通过运行 解释结合图像效果,分别介绍了处理原理与过程。关...

数字图像处理作业

图1是一张因拍摄时晃动而产生模糊的图像,试估计其psf并恢复图像。题中已明确此图是由于运动导致的模糊,所以采取课件上标准的恢复方法。首先,对 进行laplace滤波,是为了凸显图像中的高频部分,而后对图像进行radon变换以求出运动模糊的角度,由于角度标准和方向问题,需要将求出的角度减去90 也即。...

数字图像处理作业

数字图像处理上机实验题。一 基础部分。1.产生右图所示图像 f1 m,n 其中图像大小为256 256,中间亮条为128 32,暗处 0,亮处 100。对其进行fft 1 同屏显示原图f1 m,n 和fft f1 的幅度谱图 2 若令f2 m,n 1 m n f1 m,n 重复以上过程,比较二者幅度...