目录
一、绘制画布以及定义画布颜色
绘制方法
对于一个Mat类的对象,我们有其构造函数:
创建行数为 rows,列数为 col,类型为 type 的图像,并将所有元素初始
化为值 s
Mat::Mat(int rows, int cols, int type, const Scalar& s)
比如,我们要创建一张大小为512×512的蓝色画布:
Mat img(512, 512,CV_8UC3,Scalar(255,0,0));
构造函数:
前两个参数为行与列
第三个参数为类型,
这里CV_8UC3指的是我们拥有2的8次方种值,表示某个通道的亮度;
UC3指的是我们需要用到3个通道:蓝、绿、红
第四个参数为元素初始值
默认顺序为BGR
所以如果我们需要用纯蓝色画布,可以写成255,0,0
代码
int main()
{
//空白图像
//构造函数
//前两个参数为行与列
//第三个参数为类型,
//这里CV_8UC3指的是我们拥有2的8次方种值,表示某个通道的亮度;
//UC3指的是我们需要用到3个通道:蓝、绿、红
//第四个参数为元素初始值
//默认顺序为BGR
//所以如果我们需要用纯蓝色画布,可以写成255,0,0
Mat img(512, 512,CV_8UC3,Scalar(255,0,0));
imshow("Image", img);
waitKey(0);
return 0;
}
效果
纯白,我们需要把所有通道的亮度调成最高——255;
纯黑,则都为0即可。
二、绘制圆
绘制方法
绘制圆需要用到circle函数:
circle(img, Point(256, 256), 155, Scalar(0, 69, 255));
第一个参数为画布,
第二个参数为圆心坐标,
第三个参数为半径,
第四个参数为线条颜色,这里(0,69,255)为橙色。
效果
增加厚度
只需要在circle函数的最后一个参数填上厚度即可
circle(img, Point(256, 256), 155, Scalar(0, 69, 255),10);
填充
只需要将厚度的参数改为FILLED即可。
circle(img, Point(256, 256), 155, Scalar(0, 69, 255),FILLED);
三、绘制矩形
绘制方法
绘制矩形的函数为rectangle
rectangle(img, Point(130, 226), Point(382, 286), Scalar(255, 255, 255), 3);
第一个参数为画布;
第二个参数为矩形左上角坐标;
第三个参数为矩形右下角坐标;
第四个参数为颜色;
第五个参数为厚度。
效果
四、绘制线
绘制方法
绘制线需要用到line函数:
line(img, Point(130, 296), Point(382, 296),Scalar(255,255,255),2);
第一个参数为画布;
第二个参数为线条起点坐标;
第三个参数为线条终点坐标;
第四个参数为颜色;
第五个参数为厚度。
效果
效果如下(把矩形改为了白色全填充):
五、写文本
写文本方法
写文本我们需要用到putText函数:
putText(img, "Kukeoo's CS career", Point(137, 262), FONT_HERSHEY_DUPLEX, 0.75, Scalar(0, 69, 255), 2);
第一个参数为画布;
第二个参数为文本;
第三个参数为起始坐标;
第四个参数为字体:这里我选的随机;
第五个参数为缩放倍数;
第六个参数为颜色;
第七个参数为厚度。
效果
我觉得蛮好看的哈哈。
绘制与文本的笔记到这里就结束了,下一章我将更新透视变换。