当前位置: 首页 > news >正文

六安做网站公司做网站需要哪些技能

六安做网站公司,做网站需要哪些技能,wordpress注册页插件,萍乡商城网站建设Hi#xff0c;大家好#xff0c;我是半亩花海。本项目实现了基于 ORB 特征检测器和描述符的全景图像拼接算法#xff0c;能够将两张部分重叠的图像拼接成一张无缝连接的全景图像。 文章目录 一、随机抽样一致算法二、功能实现三、代码解析四、效果展示五、完整代码 一、随机… Hi大家好我是半亩花海。本项目实现了基于 ORB 特征检测器和描述符的全景图像拼接算法能够将两张部分重叠的图像拼接成一张无缝连接的全景图像。 文章目录 一、随机抽样一致算法二、功能实现三、代码解析四、效果展示五、完整代码 一、随机抽样一致算法 我们可以通过求取上一张中的特征点匹配的方法将多个图片拼接在一起。简单来说就是将这张图片做一个变换到另外一个图片上面去中间就是一个变换矩阵。 随机抽样一致算法Random sample consensusRANSAC 由于局外点、异常点的干扰最小二乘拟合的效果容易走偏而随机抽样一致算法中的数据点更不容易走偏拟合的效果更好。 选择初始样本点进行拟合给定一个容忍范围不断进行迭代。 随机算两个点看落在区间内的点有多少个越多越好。 每一次拟合后容差范围内都有对应的数据点数找出数据点个数最多的情况就是最终的拟合结果 单应性矩阵 二、功能实现 全景图像拼接流程 提取图像特征对两张图片提取的特征点求变换矩阵变换 图像拼接功能 支持将两张部分重叠的图像拼接成一张全景图像。 特征检测与匹配 使用 ORB 特征检测器和描述符进行关键点检测和特征提取。使用 BFMatcher 进行关键点匹配。 参数调整 可调整拼接参数如匹配比例和重投影误差阈值。 可视化 可选择是否显示关键点匹配可视化结果。 三、代码解析 Stitcher类 stitch方法: 用于执行图像拼接。detectAndDescribe方法: 用于特征检测和描述。matchKeypoints方法: 用于关键点匹配和透视变换计算。drawMatches方法: 用于绘制关键点匹配可视化结果。 使用方法 准备两张待拼接的部分重叠图像。调用 Stitcher 类的 stitch 方法传入待拼接图像。根据需要选择是否显示关键点匹配可视化结果。获取拼接后的全景图像。 四、效果展示 两张原图 关键点匹配 拼接结果 五、完整代码 #!/usr/bin/env python # -*- coding:utf-8 -*-Project : Stitcher-全景图像拼接-ORB特征检测器和描述符 File : Stitcher.py IDE : PyCharm Author : 半亩花海 Date : 2024/04/10 11:29import numpy as np import cv2class Stitcher:def stitch(self, images, ratio0.75, reprojThresh4.0, showMatchesFalse): # 拼接函数# 解包输入图片(imageB, imageA) images# 将图片转换为灰度图grayA cv2.cvtColor(imageA, cv2.COLOR_BGR2GRAY)grayB cv2.cvtColor(imageB, cv2.COLOR_BGR2GRAY)# 使用ORB特征检测器和描述符(kpsA, featuresA) self.detectAndDescribe(grayA)(kpsB, featuresB) self.detectAndDescribe(grayB)# 匹配特征点M self.matchKeypoints(kpsA, kpsB, featuresA, featuresB, ratio, reprojThresh)# 如果匹配结果为空则返回Noneif M is None:print(Failed to stitch images. Not enough matches.)return None# 解包匹配结果(matches, H, status) M# 进行透视变换拼接图像result cv2.warpPerspective(imageA, H, (imageA.shape[1] imageB.shape[1], imageA.shape[0]))result[0:imageB.shape[0], 0:imageB.shape[1]] imageB# 如果需要显示匹配结果则返回拼接图和匹配可视化图if showMatches:vis self.drawMatches(imageA, imageB, kpsA, kpsB, matches, status)return (result, vis)# 否则只返回拼接图return resultstaticmethoddef cv_show(name, img):# 显示图像cv2.imshow(name, img)cv2.waitKey(0)cv2.destroyAllWindows()staticmethoddef detectAndDescribe(image):# 创建ORB特征检测器orb cv2.ORB_create()# 检测特征点并计算描述符(kps, features) orb.detectAndCompute(image, None)kps np.float32([kp.pt for kp in kps])return (kps, features)staticmethoddef matchKeypoints(kpsA, kpsB, featuresA, featuresB, ratio, reprojThresh):# 创建BFMatcher对象matcher cv2.BFMatcher()# 使用KNN匹配rawMatches matcher.knnMatch(featuresA, featuresB, 2)# 进行筛选获取匹配点对matches []for m in rawMatches:if len(m) 2 and m[0].distance m[1].distance * ratio:matches.append((m[0].trainIdx, m[0].queryIdx))# 如果匹配点对数量大于4则计算透视变换矩阵if len(matches) 4:ptsA np.float32([kpsA[i] for (_, i) in matches])ptsB np.float32([kpsB[i] for (i, _) in matches])(H, status) cv2.findHomography(ptsA, ptsB, cv2.RANSAC, reprojThresh)return (matches, H, status)# 否则返回Nonereturn Nonestaticmethoddef drawMatches(imageA, imageB, kpsA, kpsB, matches, status):(hA, wA) imageA.shape[:2](hB, wB) imageB.shape[:2]vis np.zeros((max(hA, hB), wA wB, 3), dtypeuint8)vis[0:hA, 0:wA] imageAvis[0:hB, wA:] imageBfor ((trainIdx, queryIdx), s) in zip(matches, status):if s 1:ptA (int(kpsA[queryIdx][0]), int(kpsA[queryIdx][1]))ptB (int(kpsB[trainIdx][0]) wA, int(kpsB[trainIdx][1]))cv2.line(vis, ptA, ptB, (0, 255, 0), 1)return visif __name__ __main__:# 读取拼接图片imageA cv2.imread(left_01.png)imageB cv2.imread(right_01.png)# 把图片拼接成全景图stitcher Stitcher()result stitcher.stitch([imageA, imageB], showMatchesTrue)if result is not None:# 解包拼接结果(panorama, matchesVis) result# 显示拼接前的两幅图像匹配的关键点和拼接后的图像cv2.imshow(Image A, imageA)cv2.imshow(Image B, imageB)cv2.imshow(Keypoint Matches, matchesVis)cv2.imshow(Result, panorama)cv2.waitKey(0)cv2.destroyAllWindows()
http://www.tj-hxxt.cn/news/140742.html

相关文章:

  • 软件开发 网站建设seo做的比较好的网站
  • 做网站可以用php聚牛网站建设公司
  • 网站设计公司有用吗wordpress更改目录
  • php做原生直播网站网页网站的制作过程
  • 徐老师在那个网站做发视频下载辽宁建设厅官网
  • 天河网站建设公司排名运城网站制作路90
  • 长沙网站开发长沙网站建设外网资源
  • 建设部网站法律法规天津市做公司网站的公司
  • 网站建设方案书0网站建设的流程该怎么确定
  • 建设商务公司网站茂名网站建设价格
  • 外贸建英文网站的重要性做淘宝网站目的是什么
  • 网站关键词优化难不难个人与公司网站备案
  • 青岛无间设计公司网站深圳建设工程交易网站宝安
  • asp做网站主要技术网页制作设计培训
  • 外贸网站模板有什么用专业建设网站哪家好
  • 微网站建设哪家好深圳微网站开发
  • 网站维护的要求包括哪些网络工程就业前景好吗
  • 我的世界服务器如何做充钱网站如何网站建设平台
  • 安徽省住房与城乡建设厅网站自己做设计图的app
  • 购物网站页面设计步骤网站开发策划个人简历
  • 网站建设的前端开发和后端开发企业网站的步骤
  • 网站建设报道稿荆州网站推广怎么做
  • 培训教育网站建设企业为什么要验资
  • 专门做音箱的网站自助免费网站建设平台
  • 在哪个网站做外快设计江西省建设网站
  • 深圳网站建设维护珠海网站开发公司哪家好
  • 泉州网站制作专业友情链接的作用大不大
  • 影视网站建设平台网站建设费用属于什么科目
  • 怎样用代码做网站临清网站制作
  • 平潭城乡住房建设厅网站自己建立网站怎么建