打印一个3通道矩阵:
inline void cv3DoubleMatPrint( const CvMat* mat )
{
int i, j;
for( i = 0; i < mat->rows; i++ )
{
for( j = 0; j < mat->cols; j++ )
{
CvScalar scal = cvGet2D( mat, i, j );
printf( "(%f,%f,%f) ", scal.val[0], scal.val[1], scal.val[2] );
}
printf( "/n" );
}
inline void cv3DoubleMatPrint( const CvMat* mat )
{
int i, j;
for( i = 0; i < mat->rows; i++ )
{
for( j = 0; j < mat->cols; j++ )
{
CvScalar scal = cvGet2D( mat, i, j );
printf( "(%f,%f,%f) ", scal.val[0], scal.val[1], scal.val[2] );
}
printf( "/n" );
}
}
这个方法巧妙的利用了CvScalar,进行打印。
类似的如果要打印一个2通道矩阵,在图像矩阵中有时需要存复数。就需要2通道矩阵了。
inline void cv2DoubleMatPrint( const CvMat* mat )
{
int i, j;
for( i = 0; i < mat->rows; i++ )
{
for( j = 0; j < mat->cols; j++ )
{
CvScalar scal = cvGet2D( mat, i, j );
printf( "(%f,%f) ", scal.val[0], scal.val[1],);
}
printf( "/n" );
}
}
参考资料:
本文介绍如何使用C++的CvMat类打印3通道矩阵和2通道矩阵的元素,涉及CvScalar的使用。
2083

被折叠的 条评论
为什么被折叠?



