openCV中cvRectangle与cv::rectangle绘制矩形边框

cvRentangle和cv::rectangle函数原型对比:

C:      void cvRectangle(CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 )

C++: void rectangle(Mat& img, Point pt1,Point pt2,const Scalar& color, int thickness=1, int lineType=8, int shift=0)
C++: void rectangle(Mat& img, Rect rec, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )

参数介绍:

img 图像. pt1 矩形的一个顶点。 pt2 矩形对角线上的另一个顶点 color 线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。 thickness 组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。 line_type 线条的类型。见cvLine的描述 shift 坐标点的小数点位数。
代码:

#include 
#include 

using namespace std;
using namespace cv;
int main()
{
	char *imageSrc = "I:\\OpenCV Learning\\picture\\sumpalace.jpg";
	Mat matImage = imread(imageSrc,-1);
        IplImage *iplImage = cvLoadImage(imageSrc,-1);
	
	if(matImage.data==0||iplImage->imageData ==0)
	{
		cout<<"图片加载失败"<
结果:



cvLine

函数原型:void cvLine( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 );
  • img 图像。
  • pt1 线段的第一个端点。
  • pt2 线段的第二个端点。
  • color 线段的颜色。
  • thickness 线段的粗细程度。
  • line_type 线段的类型。
    8 (or 0) - 8-connected line(8邻接)连接 线。
    4 - 4-connected line(4邻接)连接线。
    CV_AA - antialiased 线条。
shift 坐标点的小数点位数。
函数cvLine 在图像中的点1和点2之间画一条线段。线段被图像或感兴趣的矩形(ROI rectangle)所裁剪。对于具有整数坐标的non-antialiasing 线条,使用8-连接或者4-连接Bresenham 算法。画粗线条时结尾是圆形的。画 antialiased 线条使用高斯滤波。要指定线段颜色,用户可以使用使用宏CV_RGB( r, g, b )。
而且指定线条颜色的时候用到的宏CV_RGB(r,g,b)定义为#define CV_RGB( r, g, b ) cvScalar( (b), (g), (r), 0 ),由此可见,实际上起作用的颜色是看cvScalar中的b,g,r顺序,线段颜色就不言而喻了

你可能感兴趣的:(Opencv)