新闻详情

新闻详情

首页 / 资讯中心 / 详情

两种图像拼接(无重叠相邻图有重叠相邻图)以及matlab实现(边线查找法)

发布时间:2026/9/12 10:20:48来源:尧图网络
两种图像拼接(无重叠相邻图有重叠相邻图)以及matlab实现(边线查找法)
文章目录[TOC](文章目录)前言1、两种图片的拼接原理无重叠部分的相邻两张图片拼接有重叠部分的两张图片拼接2、 MATLAB算法实现一、程序一二、程序二三、实例前言在我们处理遥感图像的时候会遇到相邻两个地区的图像拼接的情况或者是在摄影测量时旁向或航向的具有一定重叠度的照片又该如何进行拼接情况有很多下面主要介绍两种特殊情况下图像拼接原理以及matlab实现。需要注意的是下面所进行处理的图片像元行数必须相同列数没有要求。1、两种图片的拼接原理无重叠部分的相邻两张图片拼接在进行下图流程之前先普及一个matlab拼接矩阵的原理假设有两个矩阵那么利用matlab中矩阵拼接既有c[a,b]那我们只要将两张图像看成两个矩阵便能够进行拼接有重叠部分的两张图片拼接其实有重叠部分的两张图片的拼接可以间接转换为无重叠部分的图片拼接只要求出两张图片的重叠部分然后让其中一张减去重叠部分这样进行的拼接就是相邻无重叠的图片拼接。那该如何求其重叠部分呢网上有很多方法大概有以下两种1、求两张图片的像元相关性相关性最大的部分即为两张图片的重叠部分2、一般两个有大于30%重叠度的两张图片其中肯定有公共特征点找到这些特征点经过配准这些特征点也能找到重叠部分注上面的两种方法很困难且运算量很大对于初学者来说利用matlab实现确实很困难。注意观察上图线段L具有两个身份只要找到这两个身份就行步骤如下以下对图像A还是图像B的计算都是要在将其彩色图转换为灰度图前提下进行的第一步身份1即就是图像A的右边那一列我们列向量mb表示第二步身份2即就是图像B的某一列我们将图像B的每一个列向量表示成列向量集合Bb[b1,b2,b3,b4,b5,…,bn]表示其中n1~图像B的列数注意Bb是列向量集合不是行向量b1,b2是列向量不是一个数第三步计算Bb列向量集合中的每一个列向量与列向量mb的差值其差值用列向量集合mx[c1,c2,c3,c4,c5,…,cn]表示其中n1~图像B的列数第四步计算列向量集合mx中的每一个列向量的和用行向量sum_mx表示然后计算行向量sum_mx的最小值用min_mx表示第五步利用matlab里的find函数查找最小值min_mx在行向量sum_mx中的位置信息用[row,col]表示其中的col表示就是线段L位于图像B的某一列的横坐标第六步根据找到的col我们就可以将图像B位于col左边的部分删除并用col右边的部分与图像A进行拼接2、 MATLAB算法实现一、程序一代码程序清单1、ceil函数此函数用于计算变量的整数值其方法是向上取整。2、subplot函数此函数用于在figure窗口中创建分区域显示图像。语法是subplot(要分块区域的行数要分块区域的列数你当前图片在总分块的位置%首先利用matlab制作两张无重叠左右图片 jpgimread(R-C.jpg); [row,col,~]size(jpg); mx_colceil(col*0.5); jpg_leftjpg(:,(1:mx_col),:); jpg_rightjpg(:,(mx_col1:col),:); figure; subplot(2,2,[1,2]); imshow(jpg); title(原始图片) subplot(2,2,3); imshow(jpg_left); title(裁剪后的无重叠左图片); subplot(2,2,4); imshow(jpg_right); title(裁剪后的无重叠右图片); %拼接两个无重叠且相邻的图片 image1jpg_left; image2jpg_right; %整个图片拼接的核心部分是下面这一句 image[image1,image2]; figure; imshow(image); title(无重叠左右图片拼接结果);运行结果必要解释介于我这个算法需要两张图片的行数必须相同但由于某些电脑软件裁剪图片有误差会导致两张图片的行数不同而且网络上也很难找到左右相邻接而且行数相同的图片所以就利用matlab制作了两张邻接图片左右比例1:1在确保图片相邻且行数相同的话其他比例也可以。我们在处理遥感影像时两块无重叠区域且行数一样的图像时可以使用以上的简单算法下图为上面两张图的拼接结果利用语句 *image[image1,image2];*进行简单拼接。二、程序二代码程序清单rgb2gray函数此函数用于将图像转为灰度图像是为了方便计算重叠区域的位置[行数列数]find(矩阵条件)此函数用于查找矩阵中符合某条件的元素的行列位置%首先利用matlab制作两张有重叠部分的左右图片 jpg1imread(R-C.jpg); [row1,col1,mix]size(jpg1); %注意此处我采用的比例,即左图占原图左基准的7/10右图占原图右基准的7/10重叠部分是2/10 mx_col1ceil(col1*0.7); jpg_left1jpg1(:,(1:mx_col1),:); jpg_right1jpg1(:,(col1-mx_col1:col1),:); figure; subplot(2,2,[1,2]); imshow(jpg1); title(原始图片) subplot(2,2,3); imshow(jpg_left1); title(裁剪后的有重叠左图片); subplot(2,2,4); imshow(jpg_right1); title(裁剪后的有重叠右图片); %拼接两个有重叠且相邻的图片 image3jpg_left1; image4jpg_right1; [rows3,cols3,m3]size(image3); [rows4,cols4,m4]size(image4); dou_image3rgb2gray(image3); dou_image4rgb2gray(image4); mbdou_image3(:,cols3); mxabs(dou_image4(:,:)-mb); sum_mxsum(mx); min_mxmin(sum_mx); [rows,cols]find(sum_mxmin_mx); mx_image4image4(:,(cols:cols4),:); image[image3,mx_image4]; figure; imshow(image); title(有重叠左右图片拼接结果)运行结果必要解释下面的两张重叠图片的重叠度占总图片的2/10同样其两张图片的行数必须要相同才能利用这个算法进行拼接对上面的两张重叠图片的拼接结果三、实例废话不多说我们直接将上面的思想应用于实例。利用matlab进行对图像直接处理效果很明显没有出现错位和悬挂。image3imread(待拼接左.jpg); image4imread(待拼接右.jpg); [rows3,cols3,m3]size(image3); [rows4,cols4,m4]size(image4); dou_image3rgb2gray(image3); dou_image4rgb2gray(image4); mbdou_image3(:,cols3); mxabs(dou_image4(:,:)-mb); sum_mxsum(mx); min_mxmin(sum_mx); [rows,cols]find(sum_mxmin_mx); mx_image4image4(:,(cols:cols4),:); image[image3,mx_image4]; figure; subplot(2,2,1); imshow(image3); title(待拼接左); subplot(2,2,2); imshow(image4); title(待拼接右); subplot(2,2,[3,4]); imshow(image); title(左右拼接结果)结果
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ToF相机完整技术链路:从VCSEL硬件到深度算法与工程落地 2026/9/12 11:08:55

ToF相机完整技术链路:从VCSEL硬件到深度算法与工程落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
SEO优化公司选择标准与收费模式详解 2026/9/12 11:08:55

SEO优化公司选择标准与收费模式详解

1. SEO网站关键词优化公司选择标准解析当企业需要选择SEO服务提供商时,最常问的两个问题就是"哪家最好"和"收费标准"。作为从业十余年的SEO顾问,我建议从以下六个维度评估服务商:1.1 技术团队专业度优质SEO公司通常具备&…

阅读更多 →
three.js模型加载与资源管理最佳实践 2026/9/12 11:08:55

three.js模型加载与资源管理最佳实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Transformer输出层设计:线性变换与Softmax原理详解 2026/9/12 11:08:55

Transformer输出层设计:线性变换与Softmax原理详解

1. Transformer输出层设计原理Transformer模型的输出部分由线性层(Linear)和Softmax层组成,这是整个模型生成预测结果的关键环节。在GPT-2等自回归模型中,输出层负责将经过多层Transformer block处理后的高维特征表示转换为词汇表空间中的概率分布。1.1 …

阅读更多 →
猫抓网页视频下载指南:3 步把页面视频存进本地 2026/9/12 11:08:55

猫抓网页视频下载指南:3 步把页面视频存进本地

猫抓网页视频下载指南:3 步把页面视频存进本地 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 想保存网页视频却找不到下载按钮&#x…

阅读更多 →
自建物联网平台架构设计与实战指南 2026/9/12 11:05:55

自建物联网平台架构设计与实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞