打印一个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" );
}
}
参考资料:
本文介绍了如何使用CvScalar来打印3通道和2通道矩阵的方法,适用于图像处理中需要存储多通道数据的情况。
2077

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



