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

机械加工网站推广有效果吗微信商城小程序免费制作平台

机械加工网站推广有效果吗,微信商城小程序免费制作平台,检察院门户网站建设自查报告,西安网站建设外包这个简单的AR项目效果是#xff0c;通过给定一张静态图片作为要视频中要替换的目标物品#xff0c;当在视频中检测到图片中的物体时#xff0c;通过单应矩阵做投影#xff0c;将视频中的物体替换成一段视频播放。这个项目的所有素材来自自己的手机拍的视频。 静态图片…        这个简单的AR项目效果是通过给定一张静态图片作为要视频中要替换的目标物品当在视频中检测到图片中的物体时通过单应矩阵做投影将视频中的物体替换成一段视频播放。这个项目的所有素材来自自己的手机拍的视频。 静态图片 当我在原视频中检测到这本书时会将书替换成另一个视频里的内容。 关于opencv里的透视投影单应矩阵等概念请自行百度。下面是代码 import cv2 as cv import numpy as npvideoOriginal cv.VideoCapture(../../SampleVideos/NationalGeography.mp4) videoReplace cv.VideoCapture(../../SampleVideos/Milo1.mp4) targetImg cv.imread(./book.png, cv.IMREAD_COLOR) targetH,targetW,targetC targetImg.shape#创建ORB对象 orb cv.ORB_create(nfeatures1500) #提取ORB关键点和特征描述符 kpImg,descsImg orb.detectAndCompute(targetImg, None) #调试绘制关键点 #imgDebug cv.drawKeypoints(targetImg, kpImg, None) #cv.imshow(ORB Keypoints, imgDebug) #匹配距离阈值 matchDistanceThr 0.75while True:ret,frame videoOriginal.read()if ret False:break;#frameAug表示最终合成的增强现实的结果图片frameAug frame.copy()ret,frameReplace videoReplace.read()if ret False:break;#将视频大小调整到和待替换目标图片大小frameReplace cv.resize(frameReplace, (targetW,targetH), interpolationcv.INTER_AREA)kpVideo,descsVideo orb.detectAndCompute(frame, None)#frame cv.drawKeypoints(frame, kpVideo, None)#进行特征匹配bf cv.BFMatcher()matches bf.knnMatch(descsImg, descsVideo, k2)goodMatches []for m,n in matches:if m.distance matchDistanceThr * n.distance:goodMatches.append(m)#print(len(goodMatches))#调试绘制匹配结果imgFeatureMatching cv.drawMatches(targetImg, kpImg, frame, kpVideo, goodMatches, None, flags2)#找到单应矩阵#首先找到srcPts和dstPtsif (len(goodMatches) 20):srcPts np.float32([kpImg[m.queryIdx].pt for m in goodMatches]).reshape(-1,1,2)dstPts np.float32([kpVideo[m.trainIdx].pt for m in goodMatches]).reshape(-1,1,2)#找到单应矩阵matrix,mask cv.findHomography(srcPts, dstPts, cv.RANSAC, 5)#print(matrix)#映射targetImg的四个角点到目标平面targetPts np.float32([[0,0],[0,targetH],[targetW,targetH],[targetW, 0]]).reshape(-1,1,2)targetOnVideoPts cv.perspectiveTransform(targetPts, matrix)#print(Target shape:, targetImg.shape)#print(Frame shape:, frame.shape)#print(targetPts)#print(maps to:)#print(targetOnVideoPts)#print()#绘制待替换目标图像的位置映射到视频帧后的边框结果imgTargetOnVideoBox cv.polylines(frame, [np.int32(targetOnVideoPts)], True, (255,0,255), 3)#调用warpPerspective将要替换的视频文件帧图像投影到视频帧的图像imgWarp cv.warpPerspective(frameReplace, matrix, (frame.shape[1],frame.shape[0]))#获得掩码图#首先将视频帧中要替换的区域内容的mask标记为全1白色maskForReplace np.zeros((frame.shape[0],frame.shape[1]), np.uint8)cv.fillPoly(maskForReplace, [np.int32(targetOnVideoPts)], (255,255,255))#获得原视频帧内容的mask将maskForReplace取反即可maskForVideo cv.bitwise_not(maskForReplace)#生成增强现实的帧frameAug cv.bitwise_and(frameAug, frameAug, mask maskForVideo)frameAug cv.bitwise_or(imgWarp, frameAug)cv.imshow(Augmented Video, frameAug)cv.moveWindow(Augmented Video, imgFeatureMatching.shape[1],0)cv.imshow(FeatureMatchResult, imgFeatureMatching)cv.moveWindow(FeatureMatchResult, 0,0)#cv.imshow(Mask For Video, maskForVideo)#cv.imshow(Mask For Replace, maskForReplace)#cv.imshow(WarpImage, imgWarp)#cv.moveWindow(WarpImage, 800,0)#cv.imshow(TargetOnVideo, imgTargetOnVideoBox)#cv.imshow(VideoPlayer, frame)if cv.waitKey(33) 0xFF ord(q):break;videoOriginal.release() videoReplace.release() cv.destroyAllWindows() 运行结果 Python Opencv实践简单的AR项目
http://www.dnsts.com.cn/news/21022.html

相关文章:

  • 绍兴市中等专业学校网站久久w 网
  • 想学做电商怎么加入网站建设和优化内容最重要性
  • 重庆网站设计制造厂家app源码交易平台
  • 网站建设推广济南兴田德润优惠吗网站流量
  • ftp更换网站谷歌商店下载官方
  • 梧州市建设局官方网站小工程承包
  • 网站综合排名信息查询网页浏览器图标
  • 做网站 做手机app要学什么软件鞋子的网站策划方案模板
  • 免费一键生成个人网站网络游戏营销策略
  • 孟州网站西安企业做网站多少钱
  • 做网站项目后台的运城又一暂停通知
  • 浙江广厦建设职业技术学院网站百度云怎么做网站
  • 做网站需要虚拟主机还是服务器wordpress推广链接地址
  • 池州网站优化公司vi设计概念
  • 邢台做网站的公司有那个重庆在线直播
  • 百度网站分析wordpress 维护中
  • 网站制作费计入什么科目网络教室网站建设
  • 广州网站制作哪家专业导航网站分析
  • 云南公司网站建设网站开发的进度安排
  • 高端网站设计平台手机网站建设事项
  • 注册网站怎么注册不了建设电子商务网站需要什么设备
  • 网站建设飠金手指下拉子公司怎么注册
  • 公司做网站找谁公司做网站找谁免费网站开发模板
  • 方山网站建设妇科医院手机网站
  • 合肥网站建设服务使用wordpress搭建博客
  • 可以挣钱的网站手机网站开发软件下载
  • 营口工程建设信息网站静态网站模板中英文
  • 学校网站 网站建设wordpress留言页
  • 青岛城市建设局网站和wordpress一样的
  • 合肥建设网官方网站网站导航怎么做的