Conversion from cubic catmull-rom spline to cubic b-spline I have a bunch of points that are the control vertices of a cubic catmull-rom spline. I would like to convert these to the control vertices of a cubic bspline.

I believe I can do this using this following relation:
$\boldsymbol{t} * \boldsymbol{B}_{\text{catmull}} * \boldsymbol{V}_{\text{catmull}} = \boldsymbol{t} * \boldsymbol{B}_{\text{bspline}} * \boldsymbol{V}_{\text{bspline}}$

where $\boldsymbol{B}$ is the basis matrix and $\boldsymbol{V}$ is a vector of the control vertices. To get the control vertices of the bspline, the formula just becomes:

$\boldsymbol{V}_{\text{bspline}} = \boldsymbol{B}^{-1}_{\text{bspline}} * \boldsymbol{B}_{\text{catmull}} * \boldsymbol{V}_{\text{catmull}}$

My question is once I process say 4 control vertices of the catmull rom spline, to get 4 vertices of the bspline, how do I process other vertices (i.e the order). If a catmull-rom spline has n-vertices with cubic segments, then we have at the most $n-3$ segments. So if we have say 5 vertices, $v_0, v_1, v_2, v_3$ gives us 4 vertices for bspline. How would I go about computing the other curve segment in the bspline?
Quoting the comments above for context:

Just to confirm, are you asking, given a set of $N$ CatRom control points,
$$\{CR_0, CR_1, CR_2, CR_3 ... CR_{n-1}\}$$
forming a piecewise curve, what is the equivalent $N$ points, $$\{B_0,B_1,B_2...B_{n-1}\}$$ for a matching piecewise uniform cubic bspline?


Exactly. That is what I'm looking for. I think conversion to cubic bezier's are easy. But I would like to know if this is even possible/doable with bsplines

I think it's a bit complicated: Using the approach you described above, i.e. $$ V_{targetformat} = M_{targetformat}^{-1} . M_{sourceformat}.V_{sourceformat}$$
you can easily go from a sequence of $n$ control points of Catmull-Rom to  $(n-3)$ sets of 4 Uniform BSpline control points, i.e. a total of $4n-12$ control points , but I can't see that this will allow you to stitch them together to obtain just $n$ points...
Assuming I've got the correct matrices for the 'typical' Catmull-Rom,
$$M_{CR}=\frac{1}{2}\begin{bmatrix} 
-1 &amp; 3 &amp; -3 &amp; 1\\
2 &amp; -5 &amp; 4 &amp; -1 \\
-1 &amp; 0 &amp; 1 &amp; 0 \\
0 &amp; 2 &amp; 0 &amp; 0\\
 \end{bmatrix}$$
and uniform B-Spline:
$$M_{UB}=\frac{1}{6}\begin{bmatrix} 
-1 &amp; 3 &amp; -3 &amp; 1\\
3 &amp; -6 &amp; 3 &amp; 0 \\
-3 &amp; 0 &amp; 3 &amp; 0 \\
1 &amp; 4 &amp; 1 &amp; 0\\
 \end{bmatrix}$$
then $M^{-1}_{UB}.M_{CR}$ should be 
[UPDATE: Fixed errors in coefficents]
$$\frac{1}{6}\begin{bmatrix} 
7 &amp; -4 &amp; 5 &amp; -2\\
-2 &amp; 11 &amp; -4 &amp; 1 \\
1 &amp; -4 &amp; 11 &amp; -2 \\
-4 &amp; 13 &amp; -26 &amp; 11\\
 \end{bmatrix}$$
It seems to me that, in any batch of four points, every output vertex thus depends on every input vertex, so it seems the neighbouring points can't be shared.
Having said this, I think perhaps there might be a way of getting an approximate solution (but I've not tried rendering it myself to check it so take with a grain of salt)
We know that a Catmull-Rom spline defined by $(CR_A, CR_B, CR_C, CR_D)$, passes through $CR_B$ and $CR_C$ at t=0 and t=1 respectively.
Similarly, using $\begin{bmatrix}t^3 &amp; t^2 &amp; t &amp; 1\end{bmatrix}.M_{UB}$, we should see that at t=0 and t=1, a B-spline passes through $\frac{B_A + 4 B_B + B_C}{6}$ and $\frac{B_B + 4 B_C + B_D}{6}$.
First consider trying to go from BSpline to CR. If we had a 'loop' formed by N control points one would map from BSpline to CR with...
$$\begin{bmatrix}CR_0\\CR_1\\ ...\\CR_{n-1} \end{bmatrix} = M_{NxBtoCR}.\begin{bmatrix}B_0\\B_1\\ ...\\B_{n-1} \end{bmatrix}$$
where
$$
M_{NxBtoCR}= \frac{1}{6}.\begin{bmatrix}
4 &amp; 1 &amp; 0 &amp; 0 &amp; ... &amp; 0 &amp; 1\\
1 &amp; 4 &amp; 1 &amp; 0 &amp; ... &amp; 0 &amp; 0\\
0 &amp; 1 &amp; 4 &amp; 1 &amp; ... &amp; 0 &amp; 0\\
: &amp; : &amp;   &amp;   &amp; ... &amp; : &amp; :\\
1 &amp; 0 &amp; 0 &amp; 0 &amp; ... &amp; 1 &amp; 4\\
\end{bmatrix}
$$
If we invert that matrix to get $M_{NxBtoCR}^{-1}$, one should then be able to map the other way.
Using a maths package such as Maple, one finds that each row of $M_{NxBtoCR}^{-1}$ consists of the same set of values, all non-zero, which are progressively offset in each row. If we ignore the smaller terms, it suggests that $$B_i \approx 1.732 CR_i -0.464 (CR_{i-1}+CR_{i+1}) + 0.1243 (CR_{i-2}+CR_{i+2}) - 0.033(CR_{i-3}+CR_{i+3}) $$
There's probably some nice algebraic expression for this but I hope this might &quot;do the trick&quot;.
Update Those weights don't quite sum to 1.0 - you'll need to normalise them slightly.
Obviously, this has assumed the curve is a loop. It's probably possible to adjust the weights for the end points but I'll leave that as an exercise for the reader.