N阶贝塞尔曲线的阶乘计算方式
本来主要是将matlab的N阶贝赛尔曲线的阶乘计算方式,以c++ &opencv方式实现.
代码如下:
1.matlab实现
/matlab code:
n=length(x);
t=linspace(0,1);
xx=0
yy=0
for k=0:n-1
tmp=nchoosek(n-1,k)t.k.*(1-t).(n-1-k);
xx=xx+tmpx(k+1);
yy=yy+tmpy(k+1);
end
*/
2.c++实现
void ComputeBezierM(cv::Mat &matInput,cv::Mat &matQ)
{
int InputNum = matInput.rows;
int matTnum = 101;
cv::Mat matT(matTnum,1, CV_64F, cv::Scalar::all(0));
cv::Mat matTI(matTnum,1, CV_64F, cv::Scalar::all(1));
for (int i = 0;i < matTnum;i++)
{
double t = double(i) / (matTnum - 1);
matT.at<double>(i,0) = t;
}
cv::Mat matxx(matTnum,1, CV_64F, cv::Scalar::all(0));
cv::Mat matyy(matTnum,1, CV_