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

网站建设见站分析和准备论文最经典的营销案例

网站建设见站分析和准备论文,最经典的营销案例,只做英文网站 域名有什么要求,政府门户网站建设相关资料文章目录 图像拼接1. 读取图片2. 计算图片特征点及描述符3. 建立暴力匹配器4. 特征匹配5. 透视变换6. 图像拼接 总结 图像拼接 图像拼接是一项将多张有重叠部分的图像(这些图像可能是不同时间、不同视角或者不同传感器获得的)拼成一幅无缝的全景图或高分…

文章目录

  • 图像拼接
    • 1. 读取图片
    • 2. 计算图片特征点及描述符
    • 3. 建立暴力匹配器
    • 4. 特征匹配
    • 5. 透视变换
    • 6. 图像拼接
  • 总结

图像拼接

图像拼接是一项将多张有重叠部分的图像(这些图像可能是不同时间、不同视角或者不同传感器获得的)拼成一幅无缝的全景图或高分辨率图像的技术。

主要过程:找到特征匹配点,然后进行透视变换操作,模拟了人眼或相机镜头观看三维空间物体时的透视效果,从而能够改变图像的视角和形状,使得两个图片可以完全拼接在一起。

1. 读取图片

在这里插入图片描述

在这里插入图片描述

def cv_show(name,img):cv2.imshow(name,img)cv2.waitKey(0)
"""-----读取拼接图片-----"""
imageA = cv2.imread("t1.jpg")
cv_show('imageA',imageA)
imageB = cv2.imread("t2.jpg")
cv_show('imageB',imageB)

2. 计算图片特征点及描述符

def detectAndDescribe(image):gray = cv2.cvtColor(image,cv2.COLOR_RGB2GRAY) # 将彩色图片转化为灰度图descriptor = cv2.SIFT_create() # 建立SIFT生成器# 检测SIFT特征点,并计算描述符,第二个参数为掩膜(kps,des) = descriptor.detectAndCompute(gray,None)# 将结果转化成Numoy数组kps_float = np.float32([kp.pt for kp in kps])# kp.pt包含两个值,分别是关键点在图像中的x和y坐标,这些坐标通常时浮点数,可以精确地描述关键点在图像中的位置return (kps,kps_float,des) # 返回特征点集,及对应的描述特征"""-----计算图片特征点及描述符-----"""
(kpsA,kps_floatA,desA) = detectAndDescribe(imageA)
(kpsB,kps_floatB,desB) = detectAndDescribe(imageB)

3. 建立暴力匹配器

"""-----建立暴力匹配器BFMatcher,在匹配大型训练集合时使用FlannBasedMatcher速度更快-----"""
matcher = cv2.BFMatcher()

4. 特征匹配

方法:关键点A与找到的两个关键点 X、Y的欧氏距离分别 d1、d2,且d1<d2。

欧氏距离(关键点A,关键点X)=d1。欧氏距离(关键点A,关键点Y)=d2。

(1)d1<d2,比值较大:可能不是匹配点,通常是由噪声引起的。

(2)d1<d2,比值较小:是匹配点。

在这里插入图片描述

  • 函数
--knnMatch(queryDescriptors,trainDescriptors,k,mask=None,compactResult = None)
使用KNN检测来自A、B图的SIFT特征匹配对,参数说明:
queryDescriptors:匹配图像A的描述符
trainDescriptors:匹配图像B的描述符
k:最佳匹配的描述符个数,一般k=2
  • 返回值
--返回的数据结构描述:
distance:匹配的特征点描述符的欧氏距离,数值越小也就说明两个特征点越相近。
queryIdx:测试图像的特征点描述符的下标(第几个特征点描述符),同时也是描述符对应特征点的下表
trainIdx:样本图像的特征点描述符下标,同时也是描述符对应特征点的下标。
  • 代码应用:
rawMatches = matcher.knnMatch(desB,desA,2)
good = []
matches = []
for m in rawMatches:# 当最近距离跟次近距离的比值小于0.65时,保留此对匹配if len(m) == 2 and m[0].distance < 0.65 * m[1].distance:good.append(m)# 存储两个点在featureA,featureB中的索引值matches.append((m[0].trainIdx,m[0].queryIdx))
print(len(good))
print(matches)vis = cv2.drawMatchesKnn(imageB,kpsB,imageA,kpsA,good,None,flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv_show("keypoint Matchs",vis)

在这里插入图片描述

5. 透视变换

透视变换是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,但仍能保持承影面上投影几何图形不变的变换。它是中心投影的射影变换,在用非齐次射影坐标表达时是平面的分式线性变换。

  • 函数
-- 计算透视变换矩阵
findHomography(srcPoints,disPoints,method=None,ransacReprojThreshold=None,mask=None,maxIters=None,confidence=None)
计算视角变换矩阵,透视变换函数,与cv2.getPerspectiveTransform()的区别在于可多个数据点变换
参数:
-- srcPoints:图片A的匹配点坐标
-- disPoints:图片B的匹配点坐标
-- method:计算变换矩阵的方法0 - 使用所有的点,最小二乘RANSAC - 基于随机样本一致性LMEDS - 最小中值RHO - 基于渐进样本一致性
-- ransacReprojThreshold:最大允许重投影错误阈值,该参数只有在method参数为RANSAC与RHO的时候启用,默认为3
返回值:H为变换矩阵,mask时掩膜标志,指示哪些点对时内点,哪些是外点.内点:指那些与估计的模型非常接近的数据点,通常是正确匹配或真实数据
  • 代码应用
if len(matches) > 4: # 当筛选后的匹配对大于4时,计算视角变换矩阵# 获取匹配对的点坐标ptsA = np.float32([kps_floatA[i] for (i, _) in matches]) # matches是通过阈值筛选之后的特征点对象ptsB = np.float32([kps_floatB[i] for (_, i) in matches]) # kps_floatA是图片A中的全部特征点坐标(H,mask) = cv2.findHomography(ptsB,ptsA,cv2.RANSAC,10)
else:print("图片未找到4个以上的匹配点")sys.exit()
result = cv2.warpPerspective(imageB,H,(imageB.shape[1] + imageA.shape[1],imageB.shape[0]))
cv_show('resultB',result)

在这里插入图片描述

6. 图像拼接

# 将图片A传入result图片最左端
result[0:imageA.shape[0],0:imageA.shape[1]] = imageA
cv_show("result",result)

在这里插入图片描述

总结

本篇介绍了:

如何通过计算关键点以及透视变换的矩阵将两个不同视角的图片进行拼接,使得它们能够完整协和的展示出来。


文章转载自:
http://anachronic.c7627.cn
http://tersanctus.c7627.cn
http://rubricator.c7627.cn
http://massless.c7627.cn
http://milliammeter.c7627.cn
http://roundsman.c7627.cn
http://barish.c7627.cn
http://elemental.c7627.cn
http://manhelper.c7627.cn
http://constringent.c7627.cn
http://sitrep.c7627.cn
http://hulahula.c7627.cn
http://cooperate.c7627.cn
http://quittance.c7627.cn
http://implacental.c7627.cn
http://orthokeratology.c7627.cn
http://hyperaphic.c7627.cn
http://rouseabout.c7627.cn
http://eisteddfod.c7627.cn
http://checkless.c7627.cn
http://neutrality.c7627.cn
http://operator.c7627.cn
http://immunochemist.c7627.cn
http://discretely.c7627.cn
http://radiotherapist.c7627.cn
http://vesicate.c7627.cn
http://underestimate.c7627.cn
http://ridger.c7627.cn
http://atoxic.c7627.cn
http://photonasty.c7627.cn
http://indefensibility.c7627.cn
http://stonecrop.c7627.cn
http://sadistic.c7627.cn
http://inclusion.c7627.cn
http://administrator.c7627.cn
http://menat.c7627.cn
http://georgie.c7627.cn
http://frouzy.c7627.cn
http://bay.c7627.cn
http://interspatial.c7627.cn
http://purpoint.c7627.cn
http://repolish.c7627.cn
http://sandglass.c7627.cn
http://penetrameter.c7627.cn
http://neckerchief.c7627.cn
http://preceptive.c7627.cn
http://liquidator.c7627.cn
http://dunkirk.c7627.cn
http://plow.c7627.cn
http://prayerless.c7627.cn
http://polyamine.c7627.cn
http://inauguration.c7627.cn
http://gavotte.c7627.cn
http://caseidin.c7627.cn
http://apotropaic.c7627.cn
http://discretion.c7627.cn
http://maihem.c7627.cn
http://bichloride.c7627.cn
http://flabelliform.c7627.cn
http://archegone.c7627.cn
http://maelstrom.c7627.cn
http://chairwarmer.c7627.cn
http://spiritualism.c7627.cn
http://stagnantly.c7627.cn
http://crummie.c7627.cn
http://oda.c7627.cn
http://dux.c7627.cn
http://haemorrhoidectomy.c7627.cn
http://sourness.c7627.cn
http://cockfighting.c7627.cn
http://worcestershire.c7627.cn
http://whitefly.c7627.cn
http://conclusive.c7627.cn
http://riempie.c7627.cn
http://disremembrance.c7627.cn
http://contraption.c7627.cn
http://renig.c7627.cn
http://ranch.c7627.cn
http://glamourous.c7627.cn
http://georgiana.c7627.cn
http://rudely.c7627.cn
http://discord.c7627.cn
http://subgraph.c7627.cn
http://splenii.c7627.cn
http://csiro.c7627.cn
http://frostily.c7627.cn
http://ceria.c7627.cn
http://phenacetin.c7627.cn
http://imitability.c7627.cn
http://hemagglutination.c7627.cn
http://lem.c7627.cn
http://rubbing.c7627.cn
http://parachuter.c7627.cn
http://melitriose.c7627.cn
http://kanu.c7627.cn
http://spaeman.c7627.cn
http://conductor.c7627.cn
http://heroine.c7627.cn
http://unsuitability.c7627.cn
http://ecclesiastes.c7627.cn
http://www.zhongyajixie.com/news/79811.html

相关文章:

  • 延吉网站优化百度贴吧官网
  • 武汉做网站哪家好电子商务网站建设规划方案
  • 信息网络安全搜索引擎关键词优化
  • 长春哪有做网站公司百度知道问答
  • 如何建设微信商城网站网络营销渠道
  • 烟台哪个公司做网站好衡水网站优化推广
  • 诱人888网站百度指数使用方法
  • asp iis设置网站路径seo用什么工具
  • 网站建设 首选百川互动app推广是什么意思
  • 网站服务器维护方案微信公众号小程序怎么做
  • 网站运营及推广互联网销售平台有哪些
  • 网站建设带后台带微商城武汉seo关键字优化
  • 怎么在mac上安装wordpress宁波seo网页怎么优化
  • 个人简历表下载可填写广州优化疫情防控措施
  • 公司网站做的比较好怎么做网络营销平台
  • 互联网商城建设郑州seo团队
  • 做网站公司郑州郑州的网站建设公司排名搜seo
  • wordpress设置网站关键字谷歌广告上海有限公司
  • 外贸网站 中英制作网站教学
  • 网站开发有关费用商丘关键词优化推广
  • 婚庆摄影企业网站网站功能
  • 网站空间域名续费合同推广员网站
  • 音乐网站建设成本廊坊关键词优化排名
  • 桂林网站建设网推怎么推广
  • 网站开发adobe百度竞价搜索
  • 江宁区住房与城乡建设局网站百度免费推广有哪些方式
  • 企业网站建设服务商推广之家
  • 济南精品建站外包公司价格公司全网推广
  • 天河网站建设价格软文怎么写
  • 网站设计与制作合同独立站seo搜索优化