《学习OpenCV》打印矩阵

创建一个10行*10列的矩阵,矩阵元素为三通道。最后将此矩阵的元素打印出来,加强对OpenCV矩阵、指针的理解。

#include "cv.h"
#include "stdio.h"

int main()
{
	/*用cvCreateMat函数建立一个CvMat格式、10行*10列、3通道8位signed型的矩阵mat,返回一个指向CvMat结构体的指针*/
	CvMat* mat = cvCreateMat( 10, 10, CV_8UC3 );	
	cvZero(mat);	

	/*定义一个uchar型的指针ptr,指向矩阵mat[0][0],即矩阵mat的首地址*/
	uchar* ptr = cvPtr2D( mat, 0, 0 );										
	int x = 0;
	int y = 0;

	for( y=0; y<10; y++ )													//行循环
	{
		ptr = cvPtr2D( mat, 0, y );											//将指针ptr定位至第y行的第0个元素处,即指向每一行的首地址
		for( x=0; x<10; x++)												//列循环
		{			
			printf( " [%d,%d,%d] ", ptr[3*x+0], ptr[3*x+1], ptr[3*x+2] );	//循环输出矩阵元素mat[x][y]的三个值(因为设置为三通道)
		}
		printf( "\n" );														//每输出完一行换行
	}

	return 0;
}


你可能感兴趣的:(OpenCV)