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

制作网站怎么做的需要详细填写

制作网站怎么做的,需要详细填写,淘宝指数官网的网址,沈阳网站建设开发维护目录 一、介绍 二、仿射变换矩阵 (M) 1.M中六个元素的说明 2.计算旋转角度 3.M的计算过程 三、输出状态 (inliers) 四、错切参数 1.错切参数的定义 2.错切参数例子 #xff08;1#xff09;水平错切 #xff08;2#xff09;垂直错切 一、介绍 cv2.estimateAffi…目录 一、介绍 二、仿射变换矩阵 (M) 1.M中六个元素的说明 2.计算旋转角度 3.M的计算过程 三、输出状态 (inliers) 四、错切参数 1.错切参数的定义 2.错切参数例子 1水平错切 2垂直错切 一、介绍 cv2.estimateAffine2D 是 OpenCV 库中的一个函数用于估计两个二维点集之间的仿射变换矩阵。即第一个点集经仿射变换转换到第二个点集需要的操作包括缩放、旋转和平移。 先来看代码 import cv2 import numpy as np# 原始点集 srcPoints np.array([[50, 50], [200, 50], [50, 200]], dtypenp.float32) # 目标点集 dstPoints np.array([[70, 100], [220, 70], [150, 250]], dtypenp.float32)# 估计仿射变换矩阵 M, inliers cv2.estimateAffine2D(srcPoints, dstPoints)# 打印估计得到的仿射变换矩阵 print(M:\n, M)M: [[ 1. 0.53333333 -6.66666667][-0.2 1. 60. ]] print(inliers:\n, inliers)inliers:[[1][1][1]]从上面的代码中可以看到函数的输入是两个参数分别表示原始点集和目标点集。函数的输出参数包括两个部分仿射变换矩阵和输出状态。 二、仿射变换矩阵 (M) 第一个返回值是一个 2x3 的浮点型矩阵表示从原始点集到目标点集的仿射变换。矩阵的前两列是旋转和缩放的部分最后一列是平移的部分。可以使用这个矩阵来将原始图像或点集进行仿射变换使其与目标图像或点集对齐。 1.M中六个元素的说明 M[0,0]表示x方向上的缩放。大于 1则表示进行了放大操作小于 1则表示进行了缩小操作等于 1则表示没有进行缩放操作。 M[0,1]表示垂直错切参数与M[1,0]一起用于计算旋转角度。 M[0,2]表示x方向上的平移。 M[1,0]表示水平错切参数与M[1,1]一起用于计算旋转角度。 M[1,1]表示y方向上的缩放。大于 1则表示进行了放大操作小于 1则表示进行了缩小操作等于 1则表示没有进行缩放操作。 M[1,2]表示y方向上的平移。 2.计算旋转角度 旋转角度的计算公式 其中atan2 是一个反三角函数用于计算给定的 y 值和 x 值的反正切值。这个角度表示原始点集经过变换后的旋转角度。 代码如下np.arctan2返回的是弧度值如果需要角度值还需要再转换一下 # 得到弧度值 da np.arctan2(m[1, 0], m[0, 0]) # 得到角度值 theta_deg np.degrees(da) 3.M的计算过程 1. 首先根据输入的原始点集 srcPoints 和目标点集 dstPoints构建一个线性方程系统。对于每个点对 (srcPoint, dstPoint)构建以下两个方程 2. 将线性方程系统转化为矩阵形式 A * X B其中 A 是一个 2N x 6 的矩阵其中 N 是点对的数量。A 的每一行对应一个点对包含原始点的坐标和一个常数项。 X 是一个 6 x 1 的矩阵表示待求解的仿射变换矩阵的参数。 B 是一个 2N x 1 的矩阵包含目标点的坐标。 3. 使用最小二乘法来求解矩阵 X使得 A * X 尽可能接近 B。最小二乘法的目标是最小化残差的平方和。 4. 根据求解得到的矩阵 X构建估计的仿射变换矩阵 M 最小二乘法的目标是找到一个最优的仿射变换矩阵使得原始点集经过变换后与目标点集尽可能接近。通过最小化残差的平方和可以得到一个最优的估计结果。 需要注意的是由于存在噪声和异常值的影响估计的仿射变换矩阵可能不是完全准确的。因此输出的仿射变换矩阵 M 可能只是一个近似的估计结果需要根据实际情况进行评估和调整。 三、输出状态 (inliers) inliers是一个整数或浮点数的向量表示每个输入点对应的输出点是否被认为是内点inlier。内点是指在估计仿射变换时被认为是一致的点。输出状态的长度与输入点集的数量相同每个元素的值为 0 或 1其中 1 表示对应的点是内点0 表示对应的点是外点outlier。 cv2.estimateAffine2D确定内点inliers的算法有三个可选 cv2.RANSAC: 使用 RANSAC 算法进行估计。该选项适用于存在较多离群点的情况可以提高估计的鲁棒性这也是默认参数。         cv2.LMEDS: 使用最小中值估计Least-Median EstimationLMedS算法进行估计。该选项适用于存在少量离群点的情况可以提高估计的准确性。         cv2.RHO: 使用 RHO 算法进行估计。该选项适用于存在较多离群点的情况可以提高估计的鲁棒性。 可以通过下面的方式修改内点检测方式 M, inliers cv2.estimateAffine2D(srcPoints, dstPoints, cv2.RHO) 四、错切参数 1.错切参数的定义 上面提到了一个名词叫错切参数这里解释一下。错切参数Shear parameters是一种用于描述错切变换的数值参数。在二维图形变换中错切变换是一种线性变换它通过改变图形的形状来实现。 在二维平面上错切变换是一种将对象沿着水平或垂直方向进行平移和拉伸的变换。它会改变对象的形状使其在一个方向上相对于另一个方向发生倾斜。 在错切变换中有两个主要的错切参数水平错切参数shear parameter和垂直错切参数shear parameter。这些参数决定了在水平和垂直方向上的错切程度。         水平错切参数shx它表示在水平方向上的错切程度。当 shx 的值为正时图形在水平方向上向右上方倾斜当 shx 的值为负时图形在水平方向上向左上方倾斜当 shx 的值为零时表示没有水平方向上的错切变换。 垂直错切参数shy它表示在垂直方向上的错切程度。当 shy 的值为正时图形在垂直方向上向右下方倾斜当 shy 的值为负时图形在垂直方向上向左下方倾斜当 shy 的值为零时表示没有垂直方向上的错切变换。 这些错切参数可以通过仿射变换矩阵中的相应元素来表示。在二维仿射变换矩阵中水平错切参数通常对应于矩阵的第一行第二列元素M[0, 1]而垂直错切参数通常对应于矩阵的第二行第一列元素M[1, 0]。 2.错切参数例子 以下是一个示例说明如何使用错切参数对对象进行变形 1水平错切 水平错切就是原图每个像素的y不变x根据M[0,1]进行线性变换。 假设有一个矩形对象原始的顶点坐标为 (x1, y1), (x2, y2), (x3, y3), (x4, y4)。要对该矩形进行水平方向的错切变形可以使用错切参数 shx并将每个顶点的 x 坐标按照如下方式进行变换 这样通过调整 shx 的值可以控制矩形在水平方向上的错切程度。 下面是水平错切的代码和结果 import cv2 import numpy as npimg_path rdata/005.jpg target_path rdata/005_1.jpg scale 0.2 # 变换的比例 img cv2.imread(img_path) # 构造错切变换矩阵 M np.float32([[1, 0.2, 0], [0, 1, 0]]) h, w, _ img.shape img_shear cv2.warpAffine(img, M, (w int(scale * w), h)) cv2.imwrite(target_path, img_shear) 2垂直错切 垂直错切就是原图每个像素的x不变y根据M[1,0]进行线性变换。 要对矩形进行垂直方向的错切变形可以使用错切参数 shy并将每个顶点的 y 坐标按照如下方式进行变换 通过调整 shy 的值可以控制矩形在垂直方向上的错切程度。 下面是垂直错切的代码和结果 import cv2 import numpy as npimg_path rdata/005.jpg target_path rdata/005_2.jpg scale 0.2 # 变换的比例 img cv2.imread(img_path) # 构造错切变换矩阵 M np.float32([[1, 0, 0], [0.2, 1, 0]]) h, w, _ img.shape img_shear cv2.warpAffine(img, M, (w, h int(scale * h))) cv2.imwrite(target_path, img_shear) 需要注意的是错切参数的值可以是正数、负数或零具体取决于所需的错切方向和程度。 cv2.estimateAffine2D 的原理就介绍到这里关注不迷路(#^.^#)
http://www.pierceye.com/news/824439/

相关文章:

  • 手机购物网站模版企业信息系统查询系统官网江苏
  • 礼品行业网站建设北京网站设计精选刻
  • 六安论坛网站WordPress ftp 媒体库子目录
  • 网站域名com和cn应用商店免费下载
  • 建设营销型网站多少钱比较好的网站建设网站
  • 学校网站的建设需求搜索引擎优化的缺点包括
  • 牛牛襄阳做网站郑州网站建设市场
  • 网站首页的导航栏北京公司注册核名详细流程
  • 专注昆明网站建设有哪些网络营销方式
  • 公司做两个网站网站怎么做本地映射
  • 响应式网站一般做几个尺寸百度联盟怎么做自己的网站
  • 河南做网站的wordpress 幻灯片加数字
  • 东莞网站建设建网站平面设计培训哪个好
  • 网站建设与管理专业是什么办公空间设计案例整套
  • 网站设计网站源码怎么介绍自己的学校
  • 企业网站建设兴田德润很赞运动网站建设主题
  • 沧州自适应网站建设惠安规划局建设局网站
  • 第三方商城网站建设清理wordpress模板
  • 石家庄市建设厅网站wordpress 缩略图代码
  • 网站建设开发服务费怎么做账在线教育平台
  • 南京市英语网站建设网页制作基础教程课件葛艳玲
  • 石家庄网站建设电商台州自助建站在线咨询
  • 郑州媒体网站定制开发网站建设有趣名称
  • 清远企业网站建设公司江西网站开发企业
  • 中国建设监理协会化工监理协会网站中国建行官网首页
  • 长宁区科技网站建设科技类网站怎么做
  • 物流企业的网站模板wordpress海淘
  • 青岛做外贸网站的公司简介重庆关键词优化平台
  • 黄岛外贸网站建设很多网站没排名了
  • 广州做网站优化费用网站建设和制作