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

成都奶茶加盟网站建设福州seo结算

成都奶茶加盟网站建设,福州seo结算,深圳网站建设空间,小程序制作模板免费hom_mat2d_to_affine_par 的c#实现 背景:为课室贡献一个通用函数,实现halcon算子的同等效果,查询csdn未果,deepseek二哥与chtgpt大哥给不了最终程序,在大哥与二哥帮助下,最终实现同等效果。 踩坑&#xf…

hom_mat2d_to_affine_par 的c#实现

背景:为课室贡献一个通用函数,实现halcon算子的同等效果,查询csdn未果,deepseek二哥与chtgpt大哥给不了最终程序,在大哥与二哥帮助下,最终实现同等效果。

踩坑:1、缩放在x、y方向只输出正值,为负值时的翻转与对称的成像需要通过剪切值的正反去修正;
2、矩阵获得的变换过程对求解公式有影响,此处矩阵获得方式与halcon二维仿射变换矩阵获得方式一致(变换顺序:平移→旋转→剪切→缩放)
halcon矩阵求解公式

///
/// 根据齐次变换矩阵计算仿射变换的参数
///
/// 输入一个变换矩阵(变换顺序:平移→旋转→剪切→缩放)
///
/// 输出角度参数类型,0:弧度值;1:角度值
/// 沿着X方向的缩放因子,范围:大于等于0
/// 沿着Y方向的缩放因子,范围:大于等于0
/// AngType0时旋转弧度,AngType1时旋转角度
/// Y轴倾斜角度/剪切量,AngType0时弧度,AngType1时角度
/// 沿着 X 方向的平移
/// 沿着 Y 方向的平移
/// 返回值为0时正常;-1为函数异常;-2矩阵数组超出9位或后三位非法,不为001
int HomMat2dToAffinePar(double[] homMat, int AngType, out double Sx, out double Sy, out double Phi, out double Theta, out double Tx, out double Ty)
{
Sx = 0; Sy = 0;
Phi = 0; Theta = 0;
Tx = 0; Ty = 0;
try
{
// 验证输入数组有效性
if (homMat.Length != 9 || homMat[6] != 0 || homMat[7] != 0 || homMat[8] != 1)
{
return -2;
}
// 提取平移参数
Tx = homMat[2];
Ty = homMat[5];

            // 提取线性变换部分double a = homMat[0];double b = homMat[1];double c = homMat[3];double d = homMat[4];// 计算X轴缩放和旋转角度Sx = Math.Sqrt(a * a + c * c);if (Sx < 1e-10){ return -1; }// 计算旋转角度Phi = Math.Atan2(c, a); // 弧度// 计算Y轴缩放double cosPhi = Math.Cos(Phi);double sinPhi = Math.Sin(Phi);Sy = Math.Sqrt(Math.Pow((b * cosPhi + d * sinPhi), 2) + Math.Pow((d * cosPhi - b * sinPhi), 2));// 计算水平剪切参数double sd1 = (cosPhi * b) + (sinPhi * d);double sd2 = (cosPhi * d - sinPhi * b);Theta = Math.Atan(sd1 / sd2);// 根据缩放只输出正值对水平剪切的影响,修改剪切值if (sd2 <= 0){Theta = sd1 <= 0 ? (Math.PI + Theta) : (-1 * (Math.PI + Theta));}else{Theta = (Theta * -1);}// 将弧度标准化到[-π, π]范围if (Phi > Math.PI){Phi -= (2 * Math.PI);}else if (Phi < -Math.PI){Phi += (2 * Math.PI);}if (Theta > Math.PI){Theta -= (2 * Math.PI);}else if (Theta < -Math.PI){Theta += (2 * Math.PI);}// 将弧度转为角度if (AngType == 1){Phi = Phi * (180 / Math.PI);Theta = Theta * (180 / Math.PI);}return 0;}catch (Exception e){return -1;}}

使用演示:在任意函数中实现

   double[] g_CalibBYto6AxisHomMat3Test = { 0.99950, 0.000441, -160.94621, 0.00135, -1.000664, 110.402229, 0, 0, 1 };double Sx = 0;double Sy = 0;double Rot = 0;double Theta = 0;double Tx = 0;double Ty = 0;HomMat2dToAffinePar(g_CalibBYto6AxisHomMat3Test, 0, out Sx, out Sy, out Rot, out Theta, out Tx, out Ty);

测试结果:halcon算子hom_mat2d_to_affine_par与c#函数对比一致
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://www.hkea.cn/news/535107/

相关文章:

  • 网站建设吉金手指专业13中国营销网站
  • 做销售在哪些网站注册好百度产品
  • dw做汽车网站seo排名工具提升流量
  • 网络培训学校排名奉化seo页面优化外包
  • vps除了做网站还能做什么晨阳seo服务
  • seo网站建设优化什么意思网络营销与直播电商专业就业前景
  • 工程建设企业网站网站关键词优化应该怎么做
  • 修复wordpress青岛网站优化
  • 敦煌网站做外贸怎样网页推广怎么做的
  • 南京网站建设优化今日头条普通版
  • 网站编辑的工作职能有哪些活动营销案例100例
  • 小程序招商加盟平台我是seo关键词
  • wordpress 发帖机镇江抖音seo
  • 网站建设的小结可以发外链的论坛有哪些
  • 网站正常打开速度网店营销与推广策划方案
  • 义乌 网站制作进入百度app
  • 做外围网站赌球红树林seo基础入门免费教程
  • 绿色风格网站seo排名赚钱
  • 南宁企业免费建站百度推广营销怎么做
  • 建立个人网站的成本短视频seo营销系统
  • 深圳公司名称大全网站结构优化的内容和方法
  • 安康市代驾公司上海网站关键词排名优化报价
  • 怎么在网站上建设投票统计在线培训系统app
  • 泰州网站建设哪家好网站seo的主要优化内容
  • 洛卡博网站谁做的seo权重查询
  • 东莞网络科技公司有哪些山东网站seo
  • 网站建设需要学什么网站模板购买
  • 用html做的游戏网站关键词推广效果分析
  • 做影视网站引流正规推广平台有哪些
  • 免费下载简历模板北京seo排名厂家