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

做毕设的网站万有没有免费的crm系统

做毕设的网站万,有没有免费的crm系统,网站建设服务代理商,深圳市住房和建设局局长级别目录 蛮力匹配#xff08;ORB匹配#xff09;RANSAC算法全景图像拼接 蛮力匹配#xff08;ORB匹配#xff09; Brute-Force匹配非常简单#xff0c;首先在第一幅图像中选取一个关键点然后依次与第二幅图像的每个关键点进行#xff08;描述符#xff09;距离测试#x… 目录 蛮力匹配ORB匹配RANSAC算法全景图像拼接 蛮力匹配ORB匹配 Brute-Force匹配非常简单首先在第一幅图像中选取一个关键点然后依次与第二幅图像的每个关键点进行描述符距离测试最后返回距离最近的关键点. 对于BF匹配器首先我们必须使用**cv2.BFMatcher()**创建 BFMatcher 对象。它需要两个可选的参数 normType它指定要使用的距离测量,默认情况下它是cv2.NORM_L2它适用于SIFTSURF等cv2.NORM_L1也在那里。对于基于二进制字符串的描述符如ORBBRIEFBRISK等应使用cv2.NORM_HAMMING使用汉明距离作为度量,如果ORB使用WTA_K 3or4则应使用cv2.NORM_HAMMING2。crossCheck默认值为False。如果设置为True匹配条件就会更加严格只有到A中的第i个特征点与B中的第j个特征点距离最近并且B中的第j个特征点到A中的第i个特征点也是最近时才会返回最佳匹配即这两个特征点要互相匹配才行 两个重要的方法是BFMatcher.match和BFMatcher.knnMatch, 第一个返回最佳匹配, 第二种方法返回k个最佳匹配其中k由用户指定. 使用cv2.drawMatches()来绘制匹配的点它会将两幅图像先水平排列然后在最佳匹配的点之间绘制直线。如果前面使用的BFMatcher.knnMatch()现在可以使用函数cv2.drawMatchsKnn为每个关键点和它的个最佳匹配点绘制匹配线。如果要选择性绘制就要给函数传入一个掩模. 一对一匹配 BFMatcher.match import numpy as np import cv2 from matplotlib import pyplot as pltimg1 cv2.imread(./image/girl1.jpg) img2 cv2.imread(./image/girl2.jpg)sift cv2.SIFT_create()# kp代表特征点 des每个点对应特征向量 kp1, des1 sift.detectAndCompute(img1, None) kp2, des2 sift.detectAndCompute(img2, None)bf cv2.BFMatcher(crossCheckTrue) # 可选对象crossCheck# 1对1匹配 matches bf.match(des1, des2) matches sorted(matches, keylambda x: x.distance) # 排序通过距离来度量img3 cv2.drawMatches(img1, kp1, img2, kp2, matches[:30], None, flags2) # matches[:10] 距离前十的给显示出来,即显示十条匹配线cv2.imshow(img, img3) cv2.waitKey(0) cv2.destroyAllWindows()k对最佳匹配 BFMatcher.knnMatch import numpy as np import cv2 from matplotlib import pyplot as pltimg1 cv2.imread(./image/girl1.jpg) img2 cv2.imread(./image/girl2.jpg)sift cv2.SIFT_create()# kp代表特征点 des每个点对应特征向量 kp1, des1 sift.detectAndCompute(img1, None) kp2, des2 sift.detectAndCompute(img2, None)# k对最佳匹配 bf cv2.BFMatcher() matches bf.knnMatch(des1, des2, k2)good [] for m, n in matches:# 过滤方法if m.distance 0.75 * n.distance:good.append([m])img3 cv2.drawMatchesKnn(img1, kp1, img2, kp2, good, None, flags2)cv2.imshow(img, img3) cv2.waitKey(0) cv2.destroyAllWindows()RANSAC算法 蛮力匹配是一种简单而直观的匹配方法适用于小规模的特征点匹配。通过比较所有可能的特征点对找到最佳匹配。而RANSAC算法则通过随机采样和一致性检验从包含噪声的数据中估计出正确的模型参数对于一些存在噪声和异常值的情况RANSAC能够更稳健地估计模型。 利用RANSAC算法计算变换矩阵 RANSAC是RANdom SAmple Consensus随机一致采样的缩写。该方法是用来找到正确模型来拟合带有噪声数据的迭代方法。给定一个模型例如点集之间的单应性矩阵。基本的思想是数据中包含正确的点和噪声点合理的模型应该能够在描述正确数据点的同时摒弃噪声点。 此外还有ORB匹配、SIFT的特征匹配、基于FLANN的匹配器的匹配等等 全景图像拼接 全景图像拼接是将多张图像拼接成一张全景图的任务。在这个过程中特征点匹配和单应性矩阵估计是关键的步骤。你提到的使用SIFT找到特征点并通过单应性矩阵将图像进行变换是一种常见的方法。这样可以在不同视角或位置拍摄的图像中找到对应的特征点从而实现拼接。 通过SIFT找特征点 关于单应性矩阵(H矩阵) 利用两个图像中至少四个特征点能够求解一个单应性矩阵(homography matrix)然后用这个单应性矩阵能够将图像1中的某个坐标变换到图像2中对应的位置。然而矩阵的推导是来自于相机在不同位姿拍摄同一个三维平面所以使用opencv计算单应性矩阵的时候前提是两个图像对应区域必须是同一平面。 当进行全景图像拼接时常常需要使用RANSAC算法估计单应性矩阵。下面是一个简单的示例代码其中包括特征点匹配、RANSAC算法和全景图像拼接的步骤。 import cv2 import numpy as npdef find_keypoints_and_descriptors(image):# 使用SIFT算法找到图像的关键点和描述符sift cv2.SIFT_create()kp, des sift.detectAndCompute(image, None)return kp, desdef match_keypoints(des1, des2):# 使用BFMatcher进行特征点匹配bf cv2.BFMatcher()matches bf.knnMatch(des1, des2, k2)# 使用比值测试排除不好的匹配good []for m, n in matches:if m.distance 0.75 * n.distance:good.append(m)return gooddef ransac_homography(matches, kp1, kp2, reproj_thresh4.0):# 将匹配的关键点转换为numpy数组src_pts np.float32([kp1[m.queryIdx].pt for m in matches]).reshape(-1, 1, 2)dst_pts np.float32([kp2[m.trainIdx].pt for m in matches]).reshape(-1, 1, 2)# 使用RANSAC算法估计单应性矩阵H, mask cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, reproj_thresh)return Hdef stitch_images(image1, image2, H):# 将图像1进行透视变换将其叠加到图像2上rows1, cols1 image1.shape[:2]rows2, cols2 image2.shape[:2]warp_img1 cv2.warpPerspective(image1, H, (cols1 cols2, rows2))warp_img1[:rows2, :cols2] image2return warp_img1if __name__ __main__:# 读取两张图像img1 cv2.imread(image1.jpg)img2 cv2.imread(image2.jpg)# 找到关键点和描述符kp1, des1 find_keypoints_and_descriptors(img1)kp2, des2 find_keypoints_and_descriptors(img2)# 进行特征点匹配matches match_keypoints(des1, des2)# 使用RANSAC估计单应性矩阵H ransac_homography(matches, kp1, kp2)# 进行全景图像拼接result stitch_images(img1, img2, H)# 显示拼接结果cv2.imshow(Panorama, result)cv2.waitKey(0)cv2.destroyAllWindows()为了达到更好的拼接效果可能需要使用更复杂的图像配准和融合技术。
http://www.w-s-a.com/news/358773/

相关文章:

  • 做视频网站视频文件都存放在哪做旅游宣传图的网站有哪些
  • 地方门户类网站产品推广惠州市中国建设银行网站
  • 网站建设公司推荐5788移动版wordpress
  • 产品类型 速成网站淘宝怎么建立自己的网站
  • 南京优化网站建设公司的网站怎么建设
  • 做网站开发能挣钱月嫂云商城网站建设
  • 包装网站模板新手入门网站建设
  • 做网站的天津哪个公司做网站
  • 网站建设摊销时间是多久微信官网免费下载安装
  • 网站解析是做a记录吗群晖 wordpress 阿里云
  • 涉县移动网站建设公司常州做网站的公司有哪些
  • 网站批量创建程序中国十大人力资源公司
  • 菏泽网站建设 梧桐树二次开发创造作用
  • 维护网站费用长沙广告设计公司排名
  • 模仿别人网站侵权wordpress 修改链接失效
  • wordpress文章设置受密码保护南宁网站优化公司哪家好
  • 网站开发工程师介绍设计类的网站
  • 嘉兴seo网站推广中山建网站多少钱
  • 高端汽车网站建设帮别人做网站自己为什么会被抓
  • 网站开发实验室建设方案wordpress 主题丢失
  • 珠宝网站建设平台分析报告郑州最新发布
  • 世界杯最新排名泉州seo网站关键词优
  • 广州公司网站提供如何推广新品
  • 网站建设如何描述沈阳网站建设推广平台
  • 用dw制作个介绍家乡网站学生个人简历
  • 建设银行企业网站访问不了wordpress搬到谷歌服务器
  • 网站建设与网站优化销售别墅庭院园林景观设计公司
  • 沈阳红方城网站建设专业的微网站哪家好
  • 医院网站asp东营信息发布平台
  • 网站全站建设开题报告范文南京本地网站