怎么用matlab对图像进行裁剪
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用matlab对图像进行裁剪相关的知识,希望对你有一定的参考价值。
参考技术A matlab读图像就是数据点。删掉一些数据点就相当于裁剪了图像拼接基于matlab最低能量线裁剪图像拼接含Matlab源码 2127期
一、基于计算机视觉的图像拼接技术研究简介
1 图像拼接流程
(1)图像序列输入。对图像数据信息进行采集时,会对后续图像配准精度及融合效果产生影响。多采用相机、手机等图像拍摄工具获取到局部序列图像,要根据摄像位置差异划分发为固定、移动拍摄方式,固定拍摄确保不根据设定好的中心轴来旋转,转旋角度拍摄则无法有效保持重叠区域有效对齐。图像融合采用空间变换使其置于同一平面;移动拍摄可采用平移和自由方式,平移是经过一定间隔并通过水平移动镜头来进行拍摄,自由拍摄不限制拍摄方式,要确保拍摄图像中存在一定比例的重叠区域。
(2)图像预处理。在对图像进行捕获时可能会有非均匀光照等影响因素,导致图像产生模糊、噪声等问题,直接影响着图像匹配精度和效率,可采用图像预处理技术改善图像质量。图像噪声均可通过多种滤波来进行优化与改进。针对图像模糊失真等现象,小波分解会使图像质量得到增强与提升,两幅邻近图象亮度间差异变大会导致融合以后的图像产生进过渡带,拼效以后的效果并没有达到要求,进行拼接融合、颜色校正来提升图像亮度感,也可以优化图像质量。
(3)图像配准。对全景图像进行拼接环节中最重要的就是图像配准,可以得到图像间对应关系,进行转变并形成相同坐标系。图像配准实质上为对变换参数进行求解的全过程,在不同情况下的图像分辨率、灰度值等都存在着较大的不同,通过图像配准可以进一步减小差异性,因此,图像配准精确度会对图像拼接质量产生一定程度的影响。
(4)图像融合。对全景图像拼像最为核心的环节就是图像融合,针对会对图像质量带来很大的影响。图像空间变换是建立起几何变换模型,得到不同像素点间的对应关系,进行图像变换以后可确定出对齐重叠区域,并对重叠区域进行平滑过渡,可以确保视觉的连续性与一致性。
2 图像配准
2.1 频域匹配
通过傅里叶变换把图像函数换转到频域再进行计算,可以得到图像间平移参数。fr(x,y)为参考图像,ft(x,y)为目标图像,两图像在时域空间上应满足要求。
上式中 x0、y0为横、纵轴方向的平移量。
上式中 Fr(u,v)、Ft(u,v)为上面两函数的傅里叶变换。
两图像互功率谱公式为:
对傅里叶进行反变换以后,可得计算出相位函数,如式:
可以在(x0,y0)位置得到最大值,也为平移位置。
采用频域匹配方法不需要太多的计算量,有着很高的精度,但需要待匹配图像存在着较多的重叠区域,图像差异会引起函数能量扩散,会存在着较多的峰尖,无法准确确定出平移矢量。
2.2 匹域匹配
采用灰度信息及模板搜索相互匹配的办法,可建立起重叠区域代价函数,再确定位置参数。可采用平均绝对值、序列相似性等算法。采用区域匹配办法进行改进与优化,可建立起相似性代价函数,有效优化和提升图像匹配效果,不可以使匹配图像亮度存在太大的差异,有着较大的计算量,不可应用于非线性变换。
应用图像典型特征匹配处理办法,应该获取到边缘、轮廓等曲型特征参数,点特征算法有着很好的适用性和较高的鲁棒性,通过特征提取算法来获取到图像中的特征点,通过信息描述可获取到特征点描述子,然后采用匹配方法来建立起不同点间的对应关系,采用变换模型进行计算来确定出参数,两个匹配图像的映射关系就被建立起来。
3 图像融合
3.1 图像空间变换模型
获取到两幅将要进行拼接的图像特征点,根据对应关系建立起两幅图像的映射关系,便可以形成单应性矩阵,通过变换处理手段将处理完成后的图像投射到相同平面,可采用刚性变换模型、投影变换模型等。
3.2 重叠区域融合
全景数字图像可达到的视觉感受情况与重叠区域域融合有着直接的联系,尽量保证重叠区域自然过渡,主要的融合方法有:
(1)线性融合
采用直接平均融合方法,对图像融合重叠区域中每个对应像素点灰度值进行求和再进于平均处理,可用于融合处理以后的像素点灰度值。
上式中 Ir、It为待融合图像的函数,I 为处理后的函数。
对函数表达式进行优化与改进以后,灰度值先进行加权再求得后进行平均处理。
线性融合不需要太复杂的处理流程,也不需要太多的计算理,可应用于对速度有高要求的场所,如果重叠区域无法对齐或具有较多的复杂纹理,进行融合拼接后会存在重影等问题,达不到视觉效果要求。
(2)均值滤波融合
视觉效果不理想可通过非线性处理办法,多用于在重叠区域处理像素点灰度不连续现象。
上式中 IC为图像融合以后重叠区域,(x,y)为中心像素点坐标,s 为像素点邻近区域,N 为像素点个数。
采用均值滤波可解决非均匀光照、残影重影等现象,有利于提升全景图像视觉效果,采用模糊图像处理方式可获取到轮廓、边缘等部位的信息,但可应用的场景并不多。
(3)多分辨率样条融合
把图像分解成多个不同分辨率子图像,再对子图像进行融合,可以把子图像进行逆转换处理为融合图像,具体见图 1所示。
图 1 多分辨率样条融合图
可采用拉普拉斯金字塔融合等办法,是以拉普拉斯塔形结构作为基础的一种算法,对每层都进行融合,以图像分解上的每个频率来对重叠区域进行嘈 合,来对金字塔进行重构。
上式中 LI 为进行融合处理后的拉普拉斯金字塔,LIx、LIt为融合处理以前的金字塔,GR为对重叠区域进行掩膜处理以后的金字塔。
通过金字塔融合可以与线性融合法进行结合,使更多的图像细节得以保留,有效消除图像拼接痕迹,可收于拉普拉斯金字塔需要较大的计算量,还要进行很多处理步骤,并不适用于对拼接速度有着较高要求的场所。小波变换融合与拉普拉斯较为相近,可分解成多个不同频率子图像,还具有更快的处理速度。
(4)泊松融合
结合泊松方程来设计图像拼接融合算法,于梯度最接近位置把融合图像填置于背景图像,进行梯度变化最小值进行。
可对两张图像进行很好地融合,图像拼接部位不明显,可达以对梯度变化一致性的需要,图像中每个像素点都可以采用泊松方程来计算出插值,同样需要较大的计算量,还需要花费较长的时间,但在数据量大、高速度运行的场景中无法使用。
二、部分源代码
clc;
clear;
I = imread(‘union-terrace.jpg’);
a = shrnk(I, 0, 100);
b = shrnk(I, 100, 0);
c = shrnk(I, 100, 100);
imwrite(a, ‘wang.1a.jpg’);
imwrite(b, ‘wang.1b.jpg’);
imwrite(c, ‘wang.1c.jpg’);
clc;
clear;
I = imread(‘union-terrace.jpg’);
E = imenergy(I);
h = imagesc(E);
saveas(h, ‘wang.2a.jpg’);
% 测试2b,执行horizontal_seam 89th line
% 只评估 main.m 中从 11 到 19 行的选择
f = shrnk(I, 1, 0);
clc;
clear;
I = imread(‘union-terrace.jpg’);
seam = horizontal_seam(I);
J = permute(I, [2 1 3]);
V = horizontal_seam(J);
imshow(I);
hold on
plot(seam);
plot(V, 1:size(I, 1));
clc;
clear;
I = imread(‘wang.4a.jpg’);
f = shrnk(I, 100, 0);
imwrite(f, ‘wang.4b.jpg’);
clc;
clear;
I = imread(‘wang.5a.jpg’);
f = shrnk(I, 100, 0);
imwrite(f, ‘wang.5b.jpg’);
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]管娜.基于计算机视觉的图像拼接技术研究[J].长江信息通信. 2022,35(07)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
以上是关于怎么用matlab对图像进行裁剪的主要内容,如果未能解决你的问题,请参考以下文章