博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数字图像处理---图像配准
阅读量:6186 次
发布时间:2019-06-21

本文共 1296 字,大约阅读时间需要 4 分钟。

图像配准是数字图像处理的一种重要应用,用于对齐两幅或多幅相同场景的图片。

图像配准需要输入图像与参考图像。输入图像是我们希望变换的图像,参考图像是想要配准输入图像的图像。如:

图像配准的主要方法是使用约束点,输入图像产生输出图形的特定变换通常是不知道,所以需要估计变换函数,而估计变换函数问题是建模问题之一。

基于双线性近似的简单模型:

x = c1v + c2w + c3vw + c4;

y = c5v + c6w + c7vw + c8;

(v,  w)和(x, y)分别是输入图像和参考图像中约束点的坐标。如果在两幅图像中有四对相应的约束点,则可以解出8个未知参数。这样构成简单模型,从而可以把一幅图像的像素变换为另一幅图像的像素位置。

当然可以选择更复杂的模型,如最小均方算法等。

图像配准示例代码:

1、读入参考图像和要配准的输入图像

I_base = imread('D:\图像处理\image\lena1.jpg');

I_in = imrotate(I_base,30);
subplot(121)
imshow(I_base(:,:,1))
title('参考图片')
subplot(122)
imshow(I_in(:,:,1))
title('输入图片')

结果:

 

2、标准基准点对,将其保存至工作空间。

利用matlab提供的cpselect函数可以交互式地选择基准点。在命令行中按照以下方式调用cpselect启动交互工具

>>  cpselect(I_in(:,:,1),I_base(:,:,1));

在该control point select窗口中,点击tool里面的add point一项进行手工标注点(交互式标点),然后在file菜单里export  points to workspace 即可输出表定点的坐标位置。

注意:调用cpselect()函数要将需要配准的图像作为第一参数,将基准图像作为后一个参数。并且cpselect只接受灰度图像,如果需要处理RGB彩色图像,可以只给CPselect函数传递一个图像的层。

根据之前得到的控制点对坐标,利用cp2tform函数可以计算变换的参数。将基准点对作为输入传递给cp2tform,选择一种适当的变换类型,cp2tform函数就能确定该类型变换所需的参数,实际上相当于一种数据拟合。cp2tform函数寻找能够拟合控制点对的变换参数,返回一个TFORM的结构的几何变换结构,其中包括几何变换的类型和参数

tform = cp2tform(movingPoints1,fixedPoints1,'affine');

I_out = imtransform(I_in,tform);
figure
subplot(121)
imshow(I_base);
title('参考图像');
subplot(122)
imshow(I_out);
title('输出图像');

最终结果:

 

转载于:

转载于:https://www.cnblogs.com/MrZheng9511/p/register.html

你可能感兴趣的文章
游戏服务器设计之任务系统
查看>>
RHCS图形界面建立GFS共享中
查看>>
关于raid的介绍
查看>>
【第三篇】学习 android 事件总线androidEventbus之发布事件,子线程中接收
查看>>
MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务
查看>>
Android开发者指南(20) —— Testing
查看>>
Linux多线程实践(4) --线程特定数据
查看>>
guardian keytab生成不了
查看>>
08:特殊日历计算
查看>>
mongodb数据结构学习1--增删改查
查看>>
android中文api(80)——Gallery.LayoutParams
查看>>
Windows Embedded Compact 7加速生活化IT产品创新
查看>>
安装LSMS前需关闭MediaSense
查看>>
QTP引用外部脚本路径的设定(三)Instr函数的使用
查看>>
Linux 监控工具之Cacti使用详解(四)
查看>>
[转]Android笔记:Eclipse嵌入Unity3D开发的3D场景
查看>>
机房管理系列之共享打印服务器
查看>>
ORACLE_OCM.MGMT_DB_LL_METRICS报错
查看>>
文件服务器的配置与管理(3) 共享文件夹的创建与使用
查看>>
Windows快捷方式
查看>>