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

建设个人银行网站/游戏推广员每天做什么

建设个人银行网站,游戏推广员每天做什么,专业网站推荐,免费个人网站怎么建立步骤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.jmfq.cn/news/5362831.html

相关文章:

  • 内蒙古建设部网站/成都公司建站模板
  • 常设中国建设工程法律网站/友情链接在线观看
  • 网站建设资金预算/广告网络
  • 南漳县建设局网站/seo关键词优化如何
  • 中国农村建设网站/南昌seo营销
  • 天津企悦在线网站建设/色盲悖论
  • 网站功能模块建设/白酒最有效的推广方式
  • 网站建设时间推进表模板/浏览器老是出现站长工具
  • 辽中网站建设/网上接单平台有哪些
  • 龙泉驿区建设局网站/江门网站优化公司
  • 品牌网站建设设计公司/个人建网站的详细步骤
  • vs建设网站/seo搜索引擎优化报价
  • 深圳网站建设的公司/百度搜索推广是什么
  • 广东电子商务网站建设价格/鞍山seo公司
  • 教育网站建设需求分析报告/苏州seo营销
  • 安康网站建设智能小程序/查询关键词排名工具
  • 西平县建设局网站/搜狗搜索引擎优化论文
  • 郑州网站建设、/怎么进行网络营销
  • 网站建设常用模板/汉中seo培训
  • 网站建设价格标准案例/广州关于进一步优化疫情防控措施
  • 惠州app网站建设排行榜/企业管理软件
  • 开滦建设集团网站/关键词排名的工具
  • 企业展示网站建设多少钱/国内销售平台有哪些
  • 北京知名网站建设/免费舆情网站
  • 专业英文网站建设/谷歌google官方下载
  • 网站安全监测预警平台建设成效/百度竞价推广方案范文
  • 台州工程建设信息网站/谷歌竞价排名推广公司
  • 广州联享品牌网站建设/百度广告推广怎么做
  • 外贸网站建设内容/惠州百度seo哪里强
  • 足球网站建设意义/网页模板怎么用