wordpress忘记密码修改数据库河北seo基础教程
wordpress忘记密码修改数据库,河北seo基础教程,义乌市场官方网站,室内设计效果图视频一前言
今天我们这里下雪了#xff0c;还挺大的#xff0c;但是很美#xff0c;大家可以听听雪落下的声音#xff0c;雪景总是伴随别离#xff0c;我和我的前女友就是分别于一场雪#xff0c;而我们这个OPENCV的系列也即将结束#xff0c;预计还有两次更新#xff0c;…一前言今天我们这里下雪了还挺大的但是很美大家可以听听雪落下的声音雪景总是伴随别离我和我的前女友就是分别于一场雪而我们这个OPENCV的系列也即将结束预计还有两次更新我们就将开始yolov8代码学习等我总结出来我会从搭建环境开始到做一个项目。我还报名了蓝桥杯算促进我的学习了大家也要努力呀。二主要内容一BRIEFBinary Robust Independent Elementary Features理论我们知道 SIFT 使用 128 维向量作为描述子。由于它使用浮点数因此需要 512 个字节。类似地SURF 也至少需要 256 个字节对于 64 维描述子。为数千个特征点创建这样的向量需要大量的内存这在资源有限的情况下是不可行的特别是嵌入式系统。内存越大匹配所需的时间越长。但实际匹配时可能不需要所有的维度。我们可以使用 PCALDA 等几种方法对其进行压缩。甚至使用 LSHLocality Sensitive Hashing局部敏感哈希等其他方法也可以将浮点数格式的这些 SIFT 描述子转换为二进制字符串。对这些二进制字符串使用汉明距离进行匹配。这样速度更快因为计算汉明距离只需要进行异或和位计数这在具有 SSE 指令的现代 CPU 中非常快。但是我们仍然需要先找到描述符然后才能应用哈希方法这并不能解决我们在内存上的初始问题。这就需要 BRIEF 算法。它是一个二进制描述符用于高效地描述图像中关键点如角点周围的局部外观。它不是特征检测器它不寻找关键点你需要先用像FAST、SIFT、ORB等检测器找到关键点而是特征描述器。而且 BREIF 算法对于 CenSurE 特征点的效果比 SURF 特征点稍微好它提供了直接查找二进制字符串而无需找到描述子的快捷方式。它采用平滑后的图像并以特定的方式在文中解释选择一组\(\(n_d\)\)(x,y)位置对。然后在这些位置对上进行一些像素强度比较。例如让第一个位置对为\(\(p\)\)和\(\(q\)\)。如果\(\(I(p)\lt I(q)\)\)则其结果为 1否则为 0。对所有\((n_d (\(位置对进行对比以获得\)\)n_d\)\)维二进制字符串。一个长度为256的描述符可能看起来像这样11001011...0110。OpenCV 中的 BRIEF下面的代码展示了在 CenSurE 检测器的帮助下计算 BRIEF 描述子的方法。 CenSurE 探测器在 OpenCV 中被称为 STAR 探测器请注意您需要 opencv contrib 来使用它。需要在虚拟下安装包pip install opencv-contrib-python 直接pip但是还有个问题就是你的opencv的版本是否兼容这个函数我给出以下方法1检查opencv版本是否兼容import cv2 as cv print(fOpenCV 版本: {cv.__version__}) print(f构建信息中包含 contrib: {contrib in cv.getBuildInformation()}) # 检查 xfeatures2d 是否可用 try: # 尝试导入 xfeatures2d from cv2 import xfeatures2d print(xfeatures2d 模块可用) # 测试具体函数 star cv.xfeatures2d.StarDetector_create() brief cv.xfeatures2d.BriefDescriptorExtractor_create() print(STAR 和 BRIEF 创建成功) except ImportError: print(xfeatures2d 模块不可用) except AttributeError as e: print(f函数不可用: {e})2安装 opencv-contrib-python# 卸载原有 opencv-pythonpip uninstall opencv-python opencv-contrib-python -y# 安装 contrib 版本pip install opencv-contrib-python# 或指定版本确保兼容性pip install opencv-contrib-python4.8.1.78因为我的版本兼容所以我就直接演示了import numpy as np import cv2 as cv from matplotlib import pyplot as plt # 读取灰度图像 img cv.imread(rD:\python_code\pic\sumoiao.webp, 0) # 初始化STAR特征检测器 star cv.xfeatures2d.StarDetector_create() # 初始化BRIEF描述符提取器 brief cv.xfeatures2d.BriefDescriptorExtractor_create() # 使用STAR检测关键点 kp star.detect(img, None) # 使用BRIEF计算描述符 kp, des brief.compute(img, kp) # 输出BRIEF描述符大小和描述符矩阵形状 print(brief.descriptorSize()) print(des.shape)结果如下函数 brief.getDescriptorSize()给出以字节为单位的\(\(n_d\)\)大小。默认情况下为 32。下一步是匹配这将在另一章中完成。二ORBOriented FAST and Rotated BRIEF理论太理论不用看作为 OpenCV 爱好者关于 ORB 最重要的是它来自“OpenCV Labs”。这个算法在 2011 年由 Ethan RubleeVincent RabaudKurt Konolige 和 Gary R. Bradski 在他们的论文ORB: An efficient alternative to SIFT or SURF中提出的。如标题所述它是一个很好的 SIFT 和 SURF 的替代在计算成本匹配性能尤其是专利方面。是的SIFT 和 SURF 已获得专利您应该支付它们的使用费用。但是 ORB 不是!!!ORB 基本上是 FAST 特征点检测器和 Brief 描述子的融合并进行了许多修改以增强性能。首先它使用 FAST 查找特征点然后应用 Harris 角点的测量方法来查找其中的前 N 个点。它还使用金字塔来生成多尺度特征。但有一个问题是FAST 不计算方向。那么旋转不变性呢作者提出了以下修改。它计算以角点为中心的图像块的强度加权质心。从该角点到质心的矢量方向给出了方向。为了改善旋转不变性使用 x 和 y 计算矩该 x 和 y 应该在半径为$$r \(的圆形区域中其中\)r $$是图像块的大小。BRIEF 具有一个重要特性即每个位特征具有较大的方差平均值接近 0.5。但是一旦它沿着特征点方向定向它就会失去这个特性并变得更加分散。高的方差使得特征更易于分辨因为它对输入有不同的响应。另一个理想的特性是使测试不相关因为每次测试都会对结果产生影响。为了解决所有这些问题ORB 在所有可能的二进制测试中运行贪婪搜索以找到具有高方差和意味着接近 0.5 的那些以及不相关的。结果称为rBRIEF。对于描述子匹配使用对传统 LSH 进行改善后的多探针 LSH。该论文称 ORB 比 SURF 和 SIFT 快得多并且 ORB 描述子比 SURF 效果更好。 ORB 是用于全景拼接等的低功率设备的不错选择。OpenCV 中的 ORB像往常一样我们必须使用函数cv.ORB()ORB 参数详解参数默认值说明nfeatures500要保留的最大特征点数量scaleFactor1.2金字塔缩放因子1.0nlevels8金字塔层数edgeThreshold31不检测边界的像素数firstLevel0第一层金字塔WTA_K2产生描述子的点数2,3,4scoreTypeORB_HARRIS_SCORE评分类型HARRIS 或 FASTpatchSize31描述符使用的 patch 大小fastThreshold20FAST 阈值它有许多可选参数。最有用的是 nFeatures表示要保留的最大要素数量默认为 500scoreType 表示对特征点进行排序使用 Harris 得分或 FAST 得分默认情况下为 Harris 得分等。另一个参数 WTA_K 决定生成一个 oriented BRIEF 描述子的所用的像素点数目。默认情况下它是 2即一次选择两个点。在这种情况下进行匹配使用 NORM_HAMMING 距离。如果 WTA_K 为 3 或 4则需要 3 或 4 个点来产生 BRIEF 描述子匹配距离由 NORM_HAMMING2 定义。代码如下import numpy as np import cv2 as cv from matplotlib import pyplot as plt # 读取灰度图像 img cv.imread(rD:\python_code\pic\sumoiao.webp, 0) # 初始化ORB检测器 orb cv.ORB_create() # 检测图像中的ORB关键点 kp orb.detect(img, None) # 计算关键点描述符 kp, des orb.compute(img, kp) # 绘制关键点仅位置不包含大小和方向 img2 cv.drawKeypoints(img, kp, None, color(0, 255, 0), flags0) # 显示结果图像 plt.imshow(img2) plt.show()效果如下三最后一语今天就写这么多吧写的时候一直在下雪还是挺有意境的大家记得保暖注意身体余拏一小舟拥毳衣炉火独往湖心亭看雪。--张岱崇祯五年的雪就这么下了三百年感谢观看共勉