points,size,rectangles和scalar三元组的结构
结构 |
成员 |
意义 |
CvPoint |
Int x, y |
图像中的点 |
CvPoint2D32f |
Float x, y |
二维空间中的点 |
CvPoint3D32f |
Float x, y, z |
三维空间中的点 |
CvSize |
Int width, height |
图像的尺寸 |
CvRect |
Int x, y, width, height |
图像的部分区域 |
CvScalar |
Double val[4] |
RGBA值 |
CvSize 有变体类型:CvSize2D32f 浮点类型
假设要在(5, 10)和(20, 30)之间画上一个白色矩形,只需简单调用:
cvRectangle(
myImg,
cvPoint(5, 10),
cvPoint(20, 30),
cvScalar(255, 255, 255)
);
函数功能: 通过对角线上的两个顶点绘制简单、指定粗细或者带填充的矩形
函数原型:void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color,int thickness=1, int line_type=8, int shift=0);
img -- 图像.
pt1 -- 矩形的一个顶点。
pt2 -- 矩形对角线上的另一个顶点
color -- 线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。
thickness -- 组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。
line_type -- 线条的类型。见cvLine的描述
shift -- 坐标点的小数点位数。
cvScalar 是一个特殊的例子,它有三个构造函数:
第一个是cvScalar(),它需要一个、两个、三个或四个参数并将这些参数传递给数组val[]中的相应元素,
第二个构造函数是cvRealScalar(),它需要一个参数,被传递给val[0],而val[0]数组别的值被赋为0,
最后一个有所变化的是cvScalarAll(),它需要一个参数并且val[]中的4个元素都会设置为这个参数