Mat::copyTo と Mat::convertTo の動作

Mat::copyTo とMat::convertTo はそれぞれコピーと型変換コピーを行うメンバ関数です。マニュアルに記載はないのですが、実はコピー先の変数の型とコピー元の型との関係によってそれぞれ挙動が細かく変わります。それぞれ特殊な場合を書いておきます。なお、OpenCV 2.4.8での挙動です。

copyTo
コピー先がvectorやMat_などの固定の型であり、かつコピー元と型が異なる場合、コピー先の型に変換する convertToを呼び出してreturnします。また、コピー元が empty の場合は、コピー先を release してreturnします。
convertTo
変換元の型と変換先の型が同一でありかつスケーリングしない場合、copyToを呼び出してreturnします。

これらの点を踏まえると、m.convertTo(m, -1) は内部で m.copyTo(m)を呼び、copyToではマニュアル通り何も処理しないので、結局何もしないということになります。