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

网站代码输入完成之后要怎么做公司网站上传图片

网站代码输入完成之后要怎么做,公司网站上传图片,网络营销专业分析,centos 7 wordpress1.样条曲线简介 样条曲线(Spline)本质是分段多项式实函数#xff0c;在实数范围内有#xff1a; S:[a,b]→R #xff0c;在区间 [a,b] 上包含 k 个子区间[ti−1,ti]#xff0c;且有#xff1a; at0t1⋯tk−1tkb(1) 对应每一段区间 i 的存在多项式…1.样条曲线简介 样条曲线(Spline)本质是分段多项式实函数在实数范围内有 S:[a,b]→R 在区间 [a,b] 上包含 k 个子区间[ti−1,ti]且有 at0t1⋯tk−1tkb(1) 对应每一段区间 i 的存在多项式 Pi:[ti−1,ti]→R且满足于 S(t)P1(t) , t0≤tt1,S(t)P2(t) , t1≤tt2,⋮S(t)Pk(t) , tk−1≤t≤tk.(2) 其中 Pi(t) 多项式中最高次项的幂视为样条的阶数或次数Order of spline根据子区间 [ti−1,ti] 的区间长度是否一致分为均匀Uniform样条和非均匀Non-uniform样条。 满足了公式 (2) 的多项式有很多为了保证曲线在 S 区间内具有据够的平滑度一条n次样条同时应具备处处连续且可微的性质 P(j)i(ti)P(j)i1(ti);(3) 其中 i1,…,k−1;j0,…,n−1 。 2.三次样条曲线 2.1曲线条件 按照上述的定义给定节点 t:z:at0z0t1z1⋯⋯tk−1zk−1tkzkb(4) 三次样条曲线满足三个条件 在每段分段区间 [ti,ti1],i0,1,…,k−1 上 S(t)Si(t) 都是一个三次多项式满足 S(ti)zi,i1,…,k−1 ;S(t) 的一阶导函数 S′(t) 和二阶导函数 S′′(t) 在区间 [a,b] 上都是连续的从而曲线具有光滑性。 则三次样条的方程可以写为 Si(t)aibi(t−ti)ci(t−ti)2di(t−ti)3,(5) 其中 ai,bi,ci,di 分别代表 n 个未知系数。 曲线的连续性表示为 Si(ti)zi,(6) Si(ti1)zi1,(7) 其中 i0,1,…,k−1 。 曲线微分连续性 S′i(ti1)S′i1(ti1),(8) S′′i(ti1)S′′i1(ti1),(9) 其中 i0,1,…,k−2 。 曲线的导函数表达式 S′ibi2ci(t−ti)3di(t−ti)2,(10) S′′i(x)2ci6di(t−ti),(11) 令区间长度 hiti1−ti 则有 由公式 (6) 可得 aizi  由公式 (7) 可得 aibihicih2idih3izi1  由公式 (8) 可得 S′i(ti1)bi2cihi3dih2i ; S′i1(ti1)bi1  ⇒bi2cihi3dih2i−bi10  由公式 (9) 可得 S′′i(ti1)2ci6dihi  S′′i1(ti1)2ci1  ⇒2ci6dihi2ci1  设 miS′′i(xi)2ci 则 A. mi6dihi−mi10⇒ dimi1−mi6hi  B.将 ci,di 代入 zibihicih2idih3izi1⇒ bizi1−zihi−hi2mi−hi6(mi1−mi)  C.将 bi,ci,di 代入 bi2cihi3dih2ibi1⇒ himi2(hihi1)mi1hi1mi26[zi2−zi1hi1−zi1−zihi].(12) 2.2端点条件 在上述分析中曲线段的两个端点 t0 和 tk 是不适用的有一些常用的端点限制条件这里只讲解自然边界。 在自然边界下首尾两端的二阶导函数满足 S′′0 即 m00 和 mk0 。 3.三次样条插值类的实现 头文件 /**Cubic spline interpolation class.* */#ifndef CUBICSPLINEINTERPOLATION_H #pragma once #define CUBICSPLINEINTERPOLATION_H#include iostream #include vector #include math.h#include opencv2/opencv.hppusing namespace std; using namespace cv;/* Cubic spline interpolation coefficients */ class CubicSplineCoeffs { public:CubicSplineCoeffs( const int count ){a std::vectordouble(count);b std::vectordouble(count);c std::vectordouble(count);d std::vectordouble(count);}~CubicSplineCoeffs(){std::vectordouble().swap(a);std::vectordouble().swap(b);std::vectordouble().swap(c);std::vectordouble().swap(d);}public:std::vectordouble a, b, c, d; };enum CubicSplineMode {CUBIC_NATURAL, // NaturalCUBIC_CLAMPED, // TODO: ClampedCUBIC_NOT_A_KNOT // TODO: Not a knot };enum SplineFilterMode {CUBIC_WITHOUT_FILTER, // without filterCUBIC_MEDIAN_FILTER // median filter };/* Cubic spline interpolation */ class CubicSplineInterpolation { public:CubicSplineInterpolation() {}~CubicSplineInterpolation() {}public:/*Calculate cubic spline coefficients.- node list x (input_x);- node list y (input_y);- output coefficients (cubicCoeffs);- ends mode (splineMode).*/void calCubicSplineCoeffs( std::vectordouble input_x,std::vectordouble input_y, CubicSplineCoeffs *cubicCoeffs,CubicSplineMode splineMode CUBIC_NATURAL,SplineFilterMode filterMode CUBIC_MEDIAN_FILTER );/*Cubic spline interpolation for a list.- input coefficients (cubicCoeffs);- input node list x (input_x);- output node list x (output_x);- output node list y (output_y);- interpolation step (interStep).*/void cubicSplineInterpolation( CubicSplineCoeffs *cubicCoeffs,std::vectordouble input_x, std::vectordouble output_x,std::vectordouble output_y, const double interStep 0.5 );/*Cubic spline interpolation for a value.- input coefficients (cubicCoeffs);- input a value(x);- output interpolation value(y);*/void cubicSplineInterpolation2( CubicSplineCoeffs *cubicCoeffs,std::vectordouble input_x, double x, double y );/*calculate tridiagonal matrices with Thomas Algorithm(TDMA) :example:| b1 c1 0 0 0 0 | |x1 | |d1 || a2 b2 c2 0 0 0 | |x2 | |d2 || 0 a3 b3 c3 0 0 | |x3 | |d3 || ... ... | |...| |...|| 0 0 0 0 an bn | |xn | |dn |Ci ci/bi , i1; ci / (bi - Ci-1 * ai) , i 2, 3, ... n-1;Di di/bi , i1; ( di - Di-1 * ai )/(bi - Ci-1 * ai) , i 2, 3, ..., n-1xi Di - Ci*xi1 , i n-1, n-2, 1;*/bool caltridiagonalMatrices( cv::Mat_double input_a,cv::Mat_double input_b, cv::Mat_double input_c,cv::Mat_double input_d, cv::Mat_double output_x );/* Calculate the curve index interpolation belongs to */int calInterpolationIndex( double pt, std::vectordouble input_x );/* median filtering */void cubicMedianFilter( std::vectordouble input, const int filterSize 5 );double cubicSort( std::vectordouble input );// double cubicNearestValue( std::vector ); };#endif // CUBICSPLINEINTERPOLATION_H实现文件cpp /** CubicSplineInterpolation.cpp*/#include cubicsplineinterpolation.hvoid CubicSplineInterpolation::calCubicSplineCoeffs(std::vectordouble input_x,std::vectordouble input_y,CubicSplineCoeffs *cubicCoeffs,CubicSplineMode splineMode /* CUBIC_NATURAL */,SplineFilterMode filterMode /* CUBIC_MEDIAN_FILTER*/ ) {int sizeOfx input_x.size();int sizeOfy input_y.size();if ( sizeOfx ! sizeOfy ){std::cout Data input error! std::endl Location: CubicSplineInterpolation.cpp - calCubicSplineCoeffs() std::endl;return;}/*hi*mi 2*(hi hi1)*mi1 hi1*mi2 6{ (yi2 - yi1)/hi1 - (yi1 - yi)/hi }so, ignore the both ends:| - - - 0 ... 0 | |m0 || h0 2(h0h1) h1 0 ... 0 | |m1 || 0 h1 2(h1h2) h2 0 ... | |m2 || ... ... 0 | |...|| 0 ... 0 h(n-2) 2(h(n-2)h(n-1)) h(n-1) | | || 0 ... ... - | |mn |*/std::vectordouble copy_y input_y;if ( filterMode CUBIC_MEDIAN_FILTER ){cubicMedianFilter(copy_y, 5);}const int count sizeOfx;const int count1 sizeOfx - 1;const int count2 sizeOfx - 2;const int count3 sizeOfx - 3;cubicCoeffs new CubicSplineCoeffs( count1 );std::vectordouble step_h( count1, 0.0 );// for m matrixcv::Mat_double m_a(1, count2, 0.0);cv::Mat_double m_b(1, count2, 0.0);cv::Mat_double m_c(1, count2, 0.0);cv::Mat_double m_d(1, count2, 0.0);cv::Mat_double m_part(1, count2, 0.0);cv::Mat_double m_all(1, count, 0.0);// initial step hifor ( int idx0; idx count1; idx ){step_h[idx] input_x[idx1] - input_x[idx];}// initial coefficientsfor ( int idx0; idx count3; idx ){m_a(idx) step_h[idx];m_b(idx) 2 * (step_h[idx] step_h[idx1]);m_c(idx) step_h[idx1];}// initial dfor ( int idx 0; idx count3; idx ){m_d(idx) 6 * ((copy_y[idx2] - copy_y[idx1]) / step_h[idx1] -(copy_y[idx1] - copy_y[idx]) / step_h[idx] );}//cv::Mat_double matOfm( count2, )bool isSucceed caltridiagonalMatrices(m_a, m_b, m_c, m_d, m_part);if ( !isSucceed ){std::coutCalculate tridiagonal matrices failed!std::endlLocation: CubicSplineInterpolation.cpp - caltridiagonalMatrices()std::endl;return;}if ( splineMode CUBIC_NATURAL ){m_all(0) 0.0;m_all(count1) 0.0;for ( int i1; icount1; i ){m_all(i) m_part(i-1);}for ( int i0; icount1; i ){cubicCoeffs-a[i] copy_y[i];cubicCoeffs-b[i] ( copy_y[i1] - copy_y[i] ) / step_h[i] -step_h[i]*( 2*m_all(i) m_all(i1) ) / 6;cubicCoeffs-c[i] m_all(i) / 2.0;cubicCoeffs-d[i] ( m_all(i1) - m_all(i) ) / ( 6.0 * step_h[i] );}}else{std::coutNot define the interpolation mode!std::endl;} }void CubicSplineInterpolation::cubicSplineInterpolation(CubicSplineCoeffs *cubicCoeffs,std::vectordouble input_x,std::vectordouble output_x,std::vectordouble output_y,const double interStep ) {const int count input_x.size();double low input_x[0];double high input_x[count-1];double interBegin low;for ( ; interBegin high; interBegin interStep ){int index calInterpolationIndex(interBegin, input_x);if ( index 0 ){double dertx interBegin - input_x[index];double y cubicCoeffs-a[index] cubicCoeffs-b[index] * dertx cubicCoeffs-c[index] * dertx * dertx cubicCoeffs-d[index] * dertx * dertx * dertx;output_x.push_back(interBegin);output_y.push_back(y);}} }void CubicSplineInterpolation::cubicSplineInterpolation2(CubicSplineCoeffs *cubicCoeffs,std::vectordouble input_x, double x, double y) {const int count input_x.size();double low input_x[0];double high input_x[count-1];if ( xlow || xhigh ){std::coutThe interpolation value is out of range!std::endl;}else{int index calInterpolationIndex(x, input_x);if ( index 0 ){double dertx x - input_x[index];y cubicCoeffs-a[index] cubicCoeffs-b[index] * dertx cubicCoeffs-c[index] * dertx * dertx cubicCoeffs-d[index] * dertx * dertx * dertx;}else{std::coutCant find the interpolation range!std::endl;}} }bool CubicSplineInterpolation::caltridiagonalMatrices(cv::Mat_double input_a,cv::Mat_double input_b,cv::Mat_double input_c,cv::Mat_double input_d,cv::Mat_double output_x ) {int rows input_a.rows;int cols input_a.cols;if ( ( rows 1 cols rows ) ||(cols 1 rows cols ) ){const int count ( rows cols ? rows : cols ) - 1;output_x cv::Mat_double::zeros(rows, cols);cv::Mat_double cCopy, dCopy;input_c.copyTo(cCopy);input_d.copyTo(dCopy);if ( input_b(0) ! 0 ){cCopy(0) / input_b(0);dCopy(0) / input_b(0);}else{return false;}for ( int i1; i count; i ){double temp input_b(i) - input_a(i) * cCopy(i-1);if ( temp 0.0 ){return false;}cCopy(i) / temp;dCopy(i) ( dCopy(i) - dCopy(i-1)*input_a(i) ) / temp;}output_x(count) dCopy(count);for ( int icount-2; i 0; i-- ){output_x(i) dCopy(i) - cCopy(i)*output_x(i1);}return true;}else{return false;} }int CubicSplineInterpolation::calInterpolationIndex(double pt, std::vectordouble input_x ) {const int count input_x.size()-1;int index -1;for ( int i0; icount; i ){if ( pt input_x[i] pt input_x[i1] ){index i;return index;}}return index; }void CubicSplineInterpolation::cubicMedianFilter(std::vectordouble input, const int filterSize /* 5 */ ) {const int count input.size();for ( int ifilterSize/2; icount-filterSize/2; i ){std::vectordouble temp(filterSize, 0.0);for ( int j0; jfilterSize; j ){temp[j] input[ij - filterSize/2];}input[i] cubicSort(temp);std::vectordouble().swap(temp);}for ( int i0; ifilterSize/2; i ){std::vectordouble temp(filterSize, 0.0);for ( int j0; jfilterSize; j ){temp[j] input[j];}input[i] cubicSort(temp);std::vectordouble().swap(temp);}for ( int icount-filterSize/2; icount; i ){std::vectordouble temp(filterSize, 0.0);for ( int j0; jfilterSize; j ){temp[j] input[j];}input[i] cubicSort(temp);std::vectordouble().swap(temp);} }double CubicSplineInterpolation::cubicSort( std::vectordouble input ) {int iCount input.size();for ( int j0; jiCount-1; j ){for ( int kiCount-1; kj; k-- ){if ( input[k-1] input[k] ){double tp input[k];input[k] input[k-1];input[k-1] tp;}}}return input[iCount/2]; }
http://www.hkea.cn/news/14351694/

相关文章:

  • 新网站怎么快速收录小程序定制开发深圳
  • 天津做网站比较好的公司一流专业建设方案
  • 如何建 网站开网店流程
  • 免费建站模板一个公司可以做两个网站推广吗
  • 在哪里能找到做网站的人长春火车站附近宾馆
  • 哪些经营范围是包含网站开发的外贸做企业什么网站
  • php整站最新版本下载个人网站如何做淘宝客
  • 建网站手续wordpress超链接出错
  • 制作网页最简单的软件网站seo设计
  • 旅游网站开发实训报告设计师培训哪家好
  • 沧州网站建设刘磊开发工程师是什么
  • 网站建设 人天价格同ip网站有什么影响
  • 西安国际网站设计工程公司取名字参考大全
  • 网站 百度地图设计的有趣的网站推荐
  • 模板网站开发定制奥林匹克做校服的网站
  • 网站开发项目扶持政策有哪些商城app下载
  • 电脑网络设计干什么的seo网站优化及网站推广
  • 我有多个单页网站需要备案吗网站内页如何做排名
  • 广西南宁网站建设排行榜成都青羊建设厅官方网站
  • 网站是哪个公司做的好处未来做啥网站能致富
  • 建设银行长清网站成都网站建设推广在
  • 浙江省国有建设用地使用权建议网站注册个空壳公司需要多少钱
  • 陕西网站建设优化技术什么网站做前端练手好
  • 网站建设修改建议书网站流量通道
  • php实战做网站视频教程温州seo代理
  • 如何进行网站调试英文网站 字体大小
  • 建设校园网站的意义广告公司名称创意
  • 网站及新媒体平台建设报告网站开发完整项目平台网站开发
  • 网站开发是否交印花税四川省住房和城乡建设厅网站无法进入
  • 网站建设服务器需要钱吗网站建设工程师工资