OpenCV関数cvtColorは、マトリックスの色空間を変換します(たとえば、RGBからグレースケールに)。関数のC++シグネチャは
void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 )
この関数を使用して、行列を所定の位置に変換できますか?つまりsrc
、同じオブジェクトを使用できますdst
か?
cv::Mat mat = getColorImage();
cvtColor(mat, mat, CV_RGB2GRAY);
(どちらの方法でも、宛先には送信元とは異なるチャネル数があるため、宛先に新しいメモリブロックを割り当てる必要があることを認識しています。)
より一般的には、OpenCV API内に、関数をこのように使用できる時期を決定するための規則がありますか?