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

wordpress 制作目录百度seo快排软件

wordpress 制作目录,百度seo快排软件,微信支付 网站建设,java开发手机网站操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆拟合一组2D点。它返回一个内切于该椭圆的旋转矩形。使用了由[260]提出的近…
  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

围绕一组2D点拟合一个椭圆。

该函数计算出一个椭圆,该椭圆拟合一组2D点。它返回一个内切于该椭圆的旋转矩形。使用了由[260]提出的近似均方差(AMS)方法。

对于椭圆,这个基集是 χ = ( x 2 , x y , y 2 , x , y , 1 ) \chi= \left(x^2, x y, y^2, x, y, 1\right) χ=(x2,xy,y2,x,y,1),这是一个包含六个自由系数的集合 A T = { A xx , A xy , A yy , A x , A y , A 0 } A^T=\left\{A_{\text{xx}},A_{\text{xy}},A_{\text{yy}},A_x,A_y,A_0\right\} AT={Axx,Axy,Ayy,Ax,Ay,A0}然而,要指定一个椭圆,只需要五个数字;主轴和次轴的长度 ( a , b ) (a,b) (a,b),位置 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)以及方向 θ。这是因为基集包含了直线、二次函数、抛物线和双曲线函数以及椭圆函数作为可能的拟合。如果发现拟合是一个抛物线或双曲线函数,则使用标准的 fitEllipse 方法。AMS 方法通过施加条件 A T ( D x T D x + D y T D y ) A = 1 A^T ( D_x^T D_x + D_y^T D_y) A = 1 AT(DxTDx+DyTDy)A=1 来限制拟合为抛物线、双曲线和椭圆曲线,其中矩阵 D x Dx Dx D y Dy DyDy 是设计矩阵D关于x 和y的偏导数。矩阵是通过逐行应用以下规则来形成的,针对点集中的每一个点: D ( i , : ) = { x i 2 , x i y i , y i 2 , x i , y i , 1 } D x ( i , : ) = { 2 x i , y i , 0 , 1 , 0 , 0 } D y ( i , : ) = { 0 , x i , 2 y i , 0 , 1 , 0 } \begin{align*} D(i,:)&=\left\{x_i^2, x_i y_i, y_i^2, x_i, y_i, 1\right\} & D_x(i,:)&=\left\{2 x_i,y_i,0,1,0,0\right\} & D_y(i,:)&=\left\{0,x_i,2 y_i,0,1,0\right\} \end{align*} D(i,:)={xi2,xiyi,yi2,xi,yi,1}Dx(i,:)={2xi,yi,0,1,0,0}Dy(i,:)={0,xi,2yi,0,1,0}
AMS 方法最小化成本函数:
ϵ 2 = A T D T D A A T ( D x T D x + D y T D y ) A T \begin{equation*} \epsilon ^2=\frac{ A^T D^T D A }{ A^T (D_x^T D_x + D_y^T D_y) A^T } \end{equation*} ϵ2=AT(DxTDx+DyTDy)ATATDTDA
通过求解广义特征值问题找到最小成本。
D T D A = λ ( D x T D x + D y T D y ) A \begin{equation*} D^T D A = \lambda \left( D_x^T D_x + D_y^T D_y\right) A \end{equation*} DTDA=λ(DxTDx+DyTDy)A

fitEllipseAMS 是 OpenCV 中用于拟合椭圆的一个函数,它使用了“代数方法”(Algebraic Method)来进行椭圆拟合。相比于 fitEllipse 函数使用的最小二乘法,fitEllipseAMS 更侧重于代数意义上的拟合,适用于某些特定的应用场景。

函数原型


RotatedRect cv::fitEllipseAMS
(InputArray 	points
)	

参数

  • points 输入的2D点集,存储在 std::vector<> 或 Mat 中。

代码示例

#include <iostream>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;int main()
{// 创建一个空白图像Mat img( 400, 400, CV_8UC3, Scalar( 255, 255, 255 ) );// 创建一组2D点vector< Point2f > points;points.push_back( Point2f( 100, 100 ) );points.push_back( Point2f( 200, 100 ) );points.push_back( Point2f( 200, 200 ) );points.push_back( Point2f( 100, 200 ) );points.push_back( Point2f( 150, 150 ) );points.push_back( Point2f( 150, 250 ) );points.push_back( Point2f( 250, 150 ) );points.push_back( Point2f( 250, 250 ) );// 拟合椭圆RotatedRect ellipse = fitEllipseAMS( points );// 获取椭圆的四个顶点vector< Point2f > boxPoints;boxPoints.resize( 4 );  // 确保boxPoints至少有4个元素ellipse.points( boxPoints.data() );// 将 Point2f 转换为 Pointvector< Point > intBoxPoints;for ( const auto& pt : boxPoints ){intBoxPoints.push_back( Point( static_cast< int >( pt.x ), static_cast< int >( pt.y ) ) );}// 在原图上绘制椭圆polylines( img, intBoxPoints, true, Scalar( 0, 0, 255 ), 2, LINE_8 );// 绘制点集for ( const auto& pt : points ){circle( img, pt, 5, Scalar( 0, 255, 0 ), -1 );}// 显示结果imshow( "Ellipse Fitting (AMS)", img );waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述

http://www.ds6.com.cn/news/74687.html

相关文章:

  • wordpress 活动通知seo整站优化费用
  • 建设网站培训的ppt如何优化培训体系
  • 高安网站建设公司手游推广赚佣金的平台
  • 哈尔滨座做网站的seo是什么软件
  • 网站建设什么因素最重要国家市场监管总局官网
  • 网站301如何做下载百度浏览器
  • 美食网站要怎么做厦门关键词优化网站
  • wordpress tab缩进关键词怎么优化
  • 漳州模板网站建设朋友圈推广一天30元
  • 做网站挣钱吗百度招聘2022年最新招聘
  • 中国商检局做备案网站百度seo关键词排名优化教程
  • 作文网址百度推广seo
  • ui设计的网站如何创建自己的域名
  • 网站的二级目录怎么做网站友情链接有什么用
  • 在那个网站做定制旅游杭州百度推广代理公司哪家好
  • 地产公司网站建设方案长沙本地推广平台
  • 做外贸批发开什么网站现在学seo课程多少钱
  • 网站建设背景百度西安分公司地址
  • 专门做尾单的网站2022最新新闻素材摘抄
  • 网上美工培训seo优化软件有哪些
  • 网站建设多钱好的seo公司营销网
  • 网络推广网站大全百度投诉中心人工电话
  • 阜阳公司网站建设关键词优化排名详细步骤
  • 网站购买云空间比较靠谱的网站
  • 手机app制作网站模板龙岗seo网络推广
  • 做h5页面的网站哪个好优就业seo
  • 玩具购物网站模板宁波靠谱营销型网站建设
  • 做网站模板赚钱色盲测试卡
  • 注册深圳公司恒诚信价格郑州seo公司
  • 自己做的网站403百度seo软件