数字图像的读入read、显示display; 数字图像的类型转换(type conversion); 数字图像的缩小Shrink、放大enlarge、配准registration;

这篇博客介绍了使用Matlab进行数字图像处理的实验,包括图像的读取、显示、类型转换(彩色转灰度、灰度转二值)、缩小、放大和配准。实验中,作者遇到双线性插值和双三次插值的计算挑战,以及在图像旋转时处理边界问题的方法。此外,还详细展示了图像配准的步骤,包括选择约束点和利用矩阵运算进行图像反变换。
摘要由CSDN通过智能技术生成

作业一:用Matlab实现图像的基本操作

1.实验要求:
数字图像的读入read、显示display;
数字图像的类型转换(type conversion);
数字图像的缩小Shrink、放大enlarge、配准registration;
2.实验结果:
(1)此图为彩色图像转为灰度图像、灰度图像转为二值图像的结果

(2)这四幅图为图像缩小、放大的结果
(双线性插值与双三次插值为采用matlab自带函数的结果)

(3)此图为图像的几种空间变换的结果

(4)此图为图像配准的结果

3.结果分析:(代码见附录)
(1)图像放大采用了三种方法进行插值,在进行双线性插值与双三次插值实验时,由于图片质量太高,程序运行了两个小时都没有出结果,为了检验程序的正确性,采用了一个自写的3*3矩阵进行验证,下图为验证结果。

(2)在做图像旋转的时候起初采用的是和平移、侧切这些相同的方法[i,j,1]*仿射矩阵,但这就导致了有负数和0的产生,所以将图像的原点进行了更改,从左上角改到了图像的中心。

(3)图像配准,首先利用函数cpselect(输入图像,参考图像),找到4个约束点,如下图;
其次,利用矩阵的运算法则AC=B可推到出C=A的逆B; 最后,利用公式
x=round(c1
i+c2j+c3ij+c4); y=round(c5i+c6j+c7i*j+c8);则可把变形图反变化回来。

4.附录:
clc
close all
%读取图像
a = imread(‘E:\数字图像处理\Fig0333(a)(test_pattern_blurring_orig).tif’)
b = imread(‘E:\数字图像处理\Fig0222(a)(face).tif’)
c = imread(‘E:\数字图像处理\people.jpg’)
d = imread(‘E:\数字图像处理\Fig0222©(crowd).tif’)
e = imread(‘E:\数字图像处理\dog.jpg’)
%查看图像信息
imfinfo E:\数字图像处理\Fig0333(a)(test_pattern_blurring_orig).tif
%类型转换(matlab自带函数)
figure
subplot(2,2,1); imshow(e); title(“彩色图像”)
subplot(2,2,2); e1 = rgb2gray(e); imshow(e1); title(“灰度图像”)
subplot(2,2,3); imshow(b); title(“灰度图像”)
subplot(2,2,4); thresh = graythresh(b); b1 = im2bw(b,thresh); imshow(b1); title(“二值图像”)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%类型转换(公式法)
figure
subplot(2,2,1); imshow(e); title(“彩色图像”)
subplot(2,2,2); R = e(:,:,1); G = e(:,:,2); B = e(:,:,3); e2 = (R+G+B)/3; imshow(e2); title(“灰度图像”)
subplot(2,2,3); imshow(b); title(“灰度图像”)
subplot(2,2,4);
[m,n] =size(b);
zmax=max(max(b));%取出最大灰度值
zmin=min(min(b));
thresh1=(zmax+zmin)/2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值