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

西安城市建设职业学院官方网站网站的线下推广怎么做的

西安城市建设职业学院官方网站,网站的线下推广怎么做的,中国建设银行对公网站,创业平台的选择目录 一、环境 二、akaze特征点算法 2.1、基本原理 2.2、实现过程 2.3、实际应用 2.4、优点与不足 三、代码 3.1、数据准备 3.2、完整代码 一、环境 本文使用环境为#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、akaze特征点算法 特征点检测算法…目录 一、环境 二、akaze特征点算法 2.1、基本原理 2.2、实现过程 2.3、实际应用 2.4、优点与不足 三、代码 3.1、数据准备 3.2、完整代码 一、环境 本文使用环境为 Windows10Python 3.9.17opencv-python 4.8.0.74 二、akaze特征点算法 特征点检测算法AKAZE是一种广泛应用于图像处理领域的算法它可以在不同尺度下提取图像的特征点并具有尺度不变性和旋转不变性等优点。本文将概括介绍AKAZE算法的基本原理、实现过程以及其在实际应用中的表现。 2.1、基本原理 AKAZE算法是基于尺度空间理论和图像金字塔的它通过非线性扩散滤波来构建尺度空间并在尺度空间中检测关键点。在AKAZE中关键点的检测是通过一个称为“加速非线性扩散”的过程来实现的该过程可以快速地生成尺度空间。此外AKAZE还采用了M-LDB描述子来描述特征点的周围区域。 2.2、实现过程 图像预处理首先对输入图像进行预处理包括灰度化和降噪等操作以提高算法的准确性。构建尺度空间然后通过非线性扩散滤波来构建尺度空间并在尺度空间中检测关键点。在这个过程中采用了一种称为“加速非线性扩散”的方法该方法可以快速地生成尺度空间。关键点检测在尺度空间中采用基于区域的方法来检测关键点。这些关键点对应于图像中的局部极值点即在周围区域内具有最大或最小的灰度值。描述子生成在检测到关键点后AKAZE采用M-LDB描述子来描述特征点的周围区域。M-LDB描述子是一种改进的LDB描述子它可以更好地描述图像的特征。特征匹配最后通过比较不同图像之间的M-LDB描述子来进行特征匹配从而识别出图像中的相似区域。 2.3、实际应用 AKAZE算法在实际应用中表现出了良好的性能可以应用于许多领域如目标识别、图像配准、拼接等。例如在目标识别中AKAZE可以用于检测图像中的目标特征点并通过特征匹配来识别出目标物体。此外AKAZE还可以用于图像拼接中通过对齐不同图像中的特征点来实现无缝拼接。 2.4、优点与不足 AKAZE算法具有以下优点 尺度不变性AKAZE算法能够在不同尺度下提取图像的特征点从而适应了不同尺度的图像。旋转不变性AKAZE算法具有旋转不变性可以在不同角度下提取图像的特征点。加速性能与SIFT算法相比AKAZE算法采用了加速非线性扩散方法来构建尺度空间具有更快的运行速度。稳健性AKAZE算法对噪声和干扰具有较强的鲁棒性能够提取出较为稳健的特征点。 然而AKAZE算法也存在一些不足之处 对光照变化敏感AKAZE算法对光照变化较为敏感可能会受到光照变化的影响。对局部变化敏感AKAZE算法对局部变化较为敏感可能会导致误检或漏检。需要手动设置参数AKAZE算法需要手动设置一些参数如尺度空间级数、加速非线性扩散的迭代次数等。这些参数的设置会影响到算法的性能和准确性。 总之特征点检测算法AKAZE是一种有效的图像特征提取方法具有尺度不变性和旋转不变性等优点。在实际应用中表现出了良好的性能可以应用于许多领域。然而它也存在一些不足之处如对光照变化敏感、对局部变化敏感以及需要手动设置参数等。未来可以进一步改进和完善AKAZE算法的性能和准确性。 三、代码 3.1、数据准备 代码需要的两张图一个xml格式的文件即H1to3p.xml如下 ?xml version1.0? opencv_storage H13 type_idopencv-matrixrows3/rowscols3/colsdtd/dtdata7.6285898e-01 -2.9922929e-01 2.2567123e023.3443473e-01 1.0143901e00 -7.6999973e013.4663091e-04 -1.4364524e-05 1.0000000e00 /data/H13 /opencv_storage3.2、完整代码 代码 from __future__ import print_function import cv2 as cv import numpy as np import argparse from math import sqrt# 读取两张图片 parser argparse.ArgumentParser(descriptionCode for AKAZE local features matching tutorial.) parser.add_argument(--input1, helpPath to input image 1., defaultgraf1.png) # 在这里设置图像1 parser.add_argument(--input2, helpPath to input image 2., defaultgraf3.png) # 在这里设置图像2 parser.add_argument(--homography, helpPath to the homography matrix., defaultH1to3p.xml) # 在这里设置H矩阵 args parser.parse_args()img1 cv.imread(cv.samples.findFile(args.input1), cv.IMREAD_GRAYSCALE) img2 cv.imread(cv.samples.findFile(args.input2), cv.IMREAD_GRAYSCALE) if img1 is None or img2 is None:print(Could not open or find the images!)exit(0) fs cv.FileStorage(cv.samples.findFile(args.homography), cv.FILE_STORAGE_READ) homography fs.getFirstTopLevelNode().mat()## 初始化算法[AKAZE] akaze cv.AKAZE_create() # 检测图像1和图像2的特征点和特征向量 kpts1, desc1 akaze.detectAndCompute(img1, None) kpts2, desc2 akaze.detectAndCompute(img2, None)## 基于汉明距离使用暴力匹配来匹配特征点 matcher cv.DescriptorMatcher_create(cv.DescriptorMatcher_BRUTEFORCE_HAMMING) nn_matches matcher.knnMatch(desc1, desc2, 2)## 下面0.8默认参数可以手动修改、调试 matched1 [] matched2 [] nn_match_ratio 0.8 # 最近邻匹配参数 for m, n in nn_matches:if m.distance nn_match_ratio * n.distance:matched1.append(kpts1[m.queryIdx])matched2.append(kpts2[m.trainIdx])## 使用单应矩阵进行精匹配进一步剔除误匹配点 inliers1 [] inliers2 [] good_matches [] inlier_threshold 2.5 # 如果两个点距离小于这个值表明足够近也就是一对匹配对 for i, m in enumerate(matched1):col np.ones((3,1), dtypenp.float64)col[0:2,0] m.ptcol np.dot(homography, col)col / col[2,0]dist sqrt(pow(col[0,0] - matched2[i].pt[0], 2) \pow(col[1,0] - matched2[i].pt[1], 2))if dist inlier_threshold:good_matches.append(cv.DMatch(len(inliers1), len(inliers2), 0))inliers1.append(matched1[i])inliers2.append(matched2[i])## 可视化 res np.empty((max(img1.shape[0], img2.shape[0]), img1.shape[1]img2.shape[1], 3), dtypenp.uint8) cv.drawMatches(img1, inliers1, img2, inliers2, good_matches, res) cv.imwrite(akaze_result.png, res)inlier_ratio len(inliers1) / float(len(matched1)) print(A-KAZE Matching Results) print(*******************************) print(# Keypoints 1: \t, len(kpts1)) print(# Keypoints 2: \t, len(kpts2)) print(# Matches: \t, len(matched1)) print(# Inliers: \t, len(inliers1)) print(# Inliers Ratio: \t, inlier_ratio)cv.imshow(result, res) cv.waitKey()
http://www.w-s-a.com/news/447108/

相关文章:

  • asp网站建设教程如何在线上推广自己的产品
  • 电脑网站你懂我意思正能量济南网站建设公司熊掌号
  • 杂志社网站建设萧山区网站建设
  • 电商网站前端制作分工网站怎做百度代码统计
  • 免费的html大作业网站网站开发心得500字
  • 临时工找工作网站做美缝帮别人做非法网站
  • 深圳网站建设 设计创公司新昌网站开发
  • 唐山教育平台网站建设上海装修网官网
  • 一个公司做多个网站什么行业愿意做网站
  • 成都龙泉建设网站免费域名app官方下载
  • xss网站怎么搭建如何用wordpress站群
  • 怎样做网站外链supercell账号注册网站
  • 阿里巴巴网站是用什么技术做的哪些网站做推广比较好
  • 做网站go和python手机如何创网站
  • 网站开发进修网站做301将重定向到新域名
  • 公司网站开发费用账务处理ucenter wordpress
  • 六站合一的优势少儿编程机构
  • 软件开发与网站开发学做美食网站哪个好
  • 网站搜索 收录优化百度推广页面投放
  • 响应式网站的优点浙江省网站域名备案
  • 网站安全 扫描深圳被点名批评
  • 在哪个网站可以一对一做汉教网站优化策略
  • 龙岩做网站的顺企网宁波网站建设
  • 昆山网站建设河北连锁餐厅vi设计公司
  • 新蔡县住房和城乡建设局网站南昌租房网地宝网
  • 南宁做网站费用iis编辑网站绑定
  • 家用宽带做网站服务器建网站费用明细
  • 电商 网站 降低 跳出率 措施 效果书画院网站模板
  • 兰州移动官网网站建设上海工商网上公示系统
  • 在招聘网站里做电话销售免费空间可以上传网站吗