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

杭州企业网站制作公司怎样做一个网站

杭州企业网站制作公司,怎样做一个网站,不同类型网站优势,潍坊网站建设选聚搜网络好2023.8.19 为了在暑假内实现深度学习的进阶学习,特意学习一下传统算法,分享学习心得,记录学习日常 SIFT的百科: SIFT Scale Invariant Feature Transform, 尺度不变特征转换 全网最详细SIFT算法原理实现_ssift算法_Tc.小浩的博客…

2023.8.19

为了在暑假内实现深度学习的进阶学习,特意学习一下传统算法,分享学习心得,记录学习日常

SIFT的百科:

SIFT = Scale Invariant Feature Transform, 尺度不变特征转换

全网最详细SIFT算法原理实现_ssift算法_Tc.小浩的博客-CSDN博客

在环境配置中要配置opencv:

pip install opencv-contrib-python

SIFT算法的三个计算步骤:

  1,在DOG尺度空间中获取特征点;

  2,关键点的方向估计(寻找主方向)

  3,通过各关键点的特征向量(关键点的描述子生成)

进行两两比较找出相互匹配的若干对特征点,建立两图间景物间的对应关系,可以基于SIFT实现图像拼接

Code of SIFT and lena:

 注意你是否有lena.png图像

import cv2 as cvimg = cv.imread('lena.png')
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
sift = cv.xfeatures2d.SIFT_create()
# sift = cv.SIFT_create()
kp = sift.detect(gray, None)
img = cv.drawKeypoints(gray, kp, img)
cv.imshow("SIFT", img)
cv.imwrite('sift_keypoints.jpg', img)
cv.waitKey(0)
cv.destroyAllWindows()

Result is shown in these figrues : SIFT 提取了lena的特征点 

 基于SIFT的图片实现图片拼接:

   代码是Copy大神的,注意有两个代码,运行第二个喔。代码所用的图片也附上!

import numpy as np
import cv2class Stitcher:# 拼接函数def stitch(self, images, ratio=0.75, reprojThresh=4.0, showMatches=False):# 获取输入图片(imageB, imageA) = images# 检测A、B图片的SIFT关键特征点,并计算特征描述子(kpsA, featuresA) = self.detectAndDescribe(imageA)(kpsB, featuresB) = self.detectAndDescribe(imageB)# 匹配两张图片的所有特征点,返回匹配结果M = self.matchKeypoints(kpsA, kpsB, featuresA, featuresB, ratio, reprojThresh)# 如果返回结果为空,没有匹配成功的特征点,退出算法if M is None:return None# 否则,提取匹配结果# H是3x3视角变换矩阵(matches, H, status) = M# 将图片A进行视角变换,result是变换后图片result = cv2.warpPerspective(imageA, H, (imageA.shape[1] + imageB.shape[1], imageA.shape[0]))# 将图片B传入result图片最左端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 resultdef detectAndDescribe(self, image):# 将彩色图片转换成灰度图gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 建立SIFT生成器descriptor = cv2.xfeatures2d.SIFT_create()# 检测SIFT特征点,并计算描述子(kps, features) = descriptor.detectAndCompute(image, None)# 将结果转换成NumPy数组kps = np.float32([kp.pt for kp in kps])print(kps)# 返回特征点集,及对应的描述特征return (kps, features)def matchKeypoints(self, kpsA, kpsB, featuresA, featuresB, ratio, reprojThresh):# 建立暴力匹配器matcher = cv2.DescriptorMatcher_create("BruteForce")# 使用KNN检测来自A、B图的SIFT特征匹配对,K=2rawMatches = matcher.knnMatch(featuresA, featuresB, 2)matches = []for m in rawMatches:# 当最近距离跟次近距离的比值小于ratio值时,保留此匹配对if len(m) == 2 and m[0].distance < m[1].distance * ratio:# 存储两个点在featuresA, featuresB中的索引值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)# 如果匹配对小于4时,返回Nonereturn Nonedef drawMatches(self, imageA, imageB, kpsA, kpsB, matches, status):# 初始化可视化图片,将A、B图左右连接到一起(hA, wA) = imageA.shape[:2](hB, wB) = imageB.shape[:2]vis = np.zeros((max(hA, hB), wA + wB, 3), dtype="uint8")vis[0:hA, 0:wA] = imageAvis[0:hB, wA:] = imageB# 联合遍历,画出匹配对for ((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 vis
from Stitcher import Stitcher
import cv2# 读取拼接图片
imageA = cv2.imread("image/left_01.png")
imageB = cv2.imread("image/right_01.png")# 把图片拼接成全景图
stitcher = Stitcher()
(result, vis) = stitcher.stitch([imageA, imageB], showMatches=True)# 显示所有图片
cv2.imshow("Image A", imageA)
cv2.imshow("Image B", imageB)
cv2.imshow("Keypoint Matches", vis)
cv2.imshow("Result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

                                                            代码使用的图片

 效果是这样:

 

http://www.jinmujx.cn/news/115605.html

相关文章:

  • 网购网站开发流程seo工资服务
  • 谷歌网站推广好做吗快速排名seo软件
  • 哪些网站做任务赚钱手机百度问一问
  • 淘宝网站小视频怎么做的seo综合查询中的具体内容有哪些
  • 盐城网站建设招聘网站推广的方法
  • 成华区建设局质检站网站网站关键词排名优化方法
  • 快速设计一个网站宁波网站建设
  • 百度调整导致网站排名下降影响seo排名的因素
  • 怎么用video做网站开头品牌搜索引擎服务优化
  • 工程监理行业为什么做网站网站快速推广
  • 南京英文网站制作怎么做谷歌推广
  • 弄网站赚钱吗今日新闻头条10条
  • 全国建筑四库一平台查询泉州seo排名扣费
  • 服务器不支持做网站是什么意思深圳网络推广有几种方法
  • 湖州佳成建设网站免费创建个人网站
  • 献县制作网站seo引擎优化是什
  • 网站升级改版的目的网络营销的职能是什么
  • 团购网站建设方案seo链接优化建议
  • 定制网站建设托管如何进行线上推广
  • 重庆市应急管理局官网seo优化报价公司
  • 集团培训网站建设百度广告太多
  • 网站建设报道稿网络推广员工资多少钱
  • 石家庄公司建站seo专业培训
  • 绍兴网站制作计划近两年成功的网络营销案例
  • 长沙河东做网站淘宝seo是什么意思啊
  • 最专业的佛山网站建设价格如何提高网站的自然排名
  • 百度蜘蛛抓取网站模块怎么快速优化关键词
  • 怎么做一考试网站专门做网站的公司
  • 白城学习做网站的学校百度广告收费
  • 如何设置网站描述赤峰seo