OpencvにおけるMatマトリクスのマージと接合

811 ワード

Opencvは、2つのマトリクスを行または列でマージする方法
Matlabで2つのマトリクスをマージするのは便利です.A=[B C];A=[B;C]のような列でマージすると、opencvには、マトリクスのマージと画像の接合に使用されるvconcat関数とhconcat関数があります.
 vconcat(B,C,A); //    A=[B ;C]
 hconcat(B,C,A); //    A=[B  C]

実はこの2つの関数を使わないで、C++の中で自分で簡単にMat行列の合併を実現することができます:
Mat posMat = Mat::zeros(posNo, colsNo, CV_32FC1),
	negMat = Mat::zeros(negNo, colsNo, CV_32FC1),
	FeatureMat = Mat::zeros(posNo + negNo, colsNo, CV_32FC1),
	tmpMat;//     
	
	//     ,      
	tmpMat = FeatureMat.rowRange(0, posNo);
	cout << "tmpMat row-Size is: " << tmpMat.rows << endl;
	posMat.copyTo(tmpMat);
	tmpMat = FeatureMat.rowRange(posNo, posNo + negNo);
	cout << "tmpMat row-Size is: " << tmpMat.rows << endl;
	negMat.copyTo(tmpMat);