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

t购物网站开发前景hao123网址之家官网之手机版

t购物网站开发前景,hao123网址之家官网之手机版,cms系统创建静态网站,android编程语言背景#xff1a; 项目中需要实现数据的高斯拟合#xff0c;进而提取数据中标准差#xff0c;手头只有opencv库#xff0c;经过资料查找验证#xff0c;总结该方法。 基础知识#xff1a; 1、opencv中solve可以实现对矩阵参数的求解#xff1b; 2、线的拟合就是对多项…背景 项目中需要实现数据的高斯拟合进而提取数据中标准差手头只有opencv库经过资料查找验证总结该方法。 基础知识 1、opencv中solve可以实现对矩阵参数的求解 2、线的拟合就是对多项式参数求解的过程多项式可表示为矩阵形式 3、高斯公式中的指数幂可以通过取对数的方式转变成多项式的形式 求解思路 高斯公式-多项式公式-矩阵参数-调用solve求解 实现过程及代码 1、确定所选的高斯公式形式 G(x)a*exp(-((x-b)/c)^2); 2、对于给定的输入x1 ~ xn,有对输出y1 ~ yn。可以形成如下等式 对等式左右两边取对数并进行变换可形成如下形式 这里就形成了AX^2BXCY的形式其中 用A,B,C替换后后原等式可写作 此时我们只需要计算出A,B,C的值再通过ABC与abc的关系即可得到abc的值。(请读者自行推导abc的公式或见代码部分) 得到如上的多项式的形式后直接构造参数矩阵调用cv::solve(X,Y,A‘)接口即可得到参数矩阵A’其中即含有A,BC的值。 上代码 基础定义 typedef struct StructMultinomialParamt {double dB0;//多项式拟合的参数,数字表示幂次double dB1;double dB2; }S_MULTNMNL_PARAMT; typedef struct StructGaussParamT {double dA;//指定的高斯参数double dB;//中心点double dC;//标准差 }S_GAUS_PARAMT; void Gauss(S_GAUS_PARAMT sGsParamm, cv::Mat mX, cv::Mat mY) {cv::Mat mRslt Mat::zeros(mX.size(), mX.type());double dx 0;for (double i 0.; i mX.cols; i){for (double j 0.; j mX.rows; j){dx mX.atdouble(j, i);mRslt.atdouble(j, i) sGsParamm.dA * exp(-(pow((dx - sGsParamm.dB) / sGsParamm.dC, 2)));}}mY mRslt;return; }高斯参数求解函数 void GaussFitT(cv::Mat mX, cv::Mat mY, S_GAUS_PARAMT* psGsParamm) {//step1 构造参数矩阵mx与mycv::Mat X Mat::zeros(mX.rows, 3, CV_64FC1);for (size_t i 0; i mX.rows; i){for (size_t J 0; J 3; J){X.atdouble(i, J) pow(mX.atdouble(i, 0), 2 - J);}}cv::log(mY, mY);//对结果取对数//step2 多项式拟合cv::Mat A;//参数矩阵cv::solve(X, mY, A, cv::DECOMP_SVD);S_MULTNMNL_PARAMT sBparam;sBparam.dB2 A.atdouble(0);sBparam.dB1 A.atdouble(1);sBparam.dB0 A.atdouble(2);//step3 高斯参数计算ABC-》abcpsGsParamm-dA exp(sBparam.dB0 - pow(sBparam.dB1, 2) / (4 * sBparam.dB2));psGsParamm-dB -sBparam.dB1 / (2 * sBparam.dB2);psGsParamm-dC sqrt(-1 / sBparam.dB2);return; }# 测试代码 double dX[50];//输入数据X double dY[50];//输入数据Y std::vectorcv::Point pointsOri;for (int i 0; i 50; i) {dX[i] double(i);dY[i] -0.5 * pow((dX[i] - 25), 2) 320 i;pointsOri.push_back(cv::Point(dX[i], dY[i])); } //转换成求解函数输入需要的数据格式 cv::Mat mGsInputX Mat::zeros(50, 1, CV_64FC1); cv::Mat mGsInputY Mat::zeros(50, 1, CV_64FC1); for (size_t i 0; i 50; i) {mGsInputX.atdouble(i) dX[i];mGsInputY.atdouble(i) dY[i]; }S_GAUS_PARAMT sGsParamm;//求解结果 GaussFitT(mGsInputX, mGsInputY, sGsParamm);//结果对比 Mat mGsOutputY; Gauss(sGsParamm, mGsInputX, mGsOutputY); std::vectorcv::Point pointsNew;//拟合结果 for (int i 0; i 50; i) {pointsNew.push_back(cv::Point(dX[i], mGsOutputY.atdouble(i))); } cv::Mat img(450, 60, CV_8UC3, cv::Scalar(0, 0, 0)); cv::polylines(img, std::vectorstd::vectorcv::Point{pointsOri}, false, cv::Scalar(0, 0, 255), 2); cv::polylines(img, std::vectorstd::vectorcv::Point{pointsNew}, false, cv::Scalar(255, 255, 255), 0.5);// 显示图像 cv::imshow(Line Chart, img); cv::waitKey(0);运行输出 红色的为原始数据分布白色的为拟合计算结果。 而我需要的标准差则为sGsParamm.dC。 参考:https://blog.csdn.net/guangjie2333/article/details/115629152 https://blog.csdn.net/KYJL888/article/details/103073956 https://blog.csdn.net/qq_35097289/article/details/103910984 后记 调用solve的接口求解时OPENCV提供了以下六种方式以对应不同的情况。对于多项式的求解也可以采用最小二乘法的逼近不再调用solve方法这块后面再填坑吧。 cv::DECOMP_LU 高斯消元法LU分解 cv::DECOMP_SVD 奇异值分解SVD cv::DECOMP_CHOLESKY 对于对称正定矩阵 cv::DECOMP_EIG 特征值分解只用于对称矩阵 cv::DECOMP_QR QR因式分解 cv::DECOMP_NORMAL 可选附加标志表示要求解标准方程
http://www.zqtcl.cn/news/662566/

相关文章:

  • html课程教学网站模板手机微信小程序开发教程
  • 用电脑做兼职的网站比较好食品网站建设网站定制开发
  • 网站开发 加密保护小程序制作开发进度表
  • 深圳坪山站外贸展示型网站建设
  • 手机端自定义做链接网站济南网站制作方案
  • 软件网站是怎么做的帮别人做网站赚多少钱
  • 纯静态网站 搜索功能佛山网站建设 奇锐科技
  • 四川省建设厅官方网站联系电话自己网站做虚拟币违法吗
  • 同城招聘网站自助建站2014 网站建设
  • 个人网站空间大小江油官方网站建设
  • 怎样建网站做什么网站能吸引流量
  • 做vi设计的网站网络营销推广思路
  • 简述网站设计流程沁水做网站
  • 南京公司网站建设怎么收费获奖网页设计
  • 网站域名试用期水墨风格网站源码
  • 长沙网站开长沙手机网站建设哪些内容
  • 网站建设算固定资产吗做泵阀生意到哪个网站
  • 佛山网站建设定制杭州人防质监站网址
  • 什么网站可以做微官网定制小程序制作一个需要多少钱
  • 扒下来的网站怎么做修改什么样是权网站重高的
  • 淘宝客做网站链接潍坊网站建设wfzhy
  • 怎样做二维码链接到网站上做的比较好的美食网站有哪些
  • 自动化科技产品网站建设响应式博客wordpress
  • 个人建站如何赚钱男人的好看网
  • 门户网站建设管理工作作一手房用什么做网站
  • 网站建设优化服务案例三合一网站程序
  • 网站长尾词关于制作网站的方案
  • 做二手衣服的网站有哪些wordpress单本小说采集
  • 曲靖市建设局网站品牌营销咨询公司是做什么的
  • wordpress网站统计代码放哪个文件putty搭建wordpress