1.API和相关知识
1. rectangele 绘制矩形
共7个参数
第1个参数 输入
第2个参数 矩形左上坐标
第3个参数 矩形右下坐标
第4个参数 矩形颜色
第5个参数 线宽
如果参数 >=0,则表示绘制矩形(如为1,表示绘制的矩形边为1个像素)
如果参数 < 0,则表示填充矩形(如-1,表示填充整个矩形)
第6个参数 lineType
关于图像锯齿,有几种方式处理
不管不顾,就用LINE_4 或者 LINE_8
消除锯齿,就用LINE_AA (AA就是反锯齿)
第7个参数 缩小图像,同时缩短矩形左上顶点与(0,0)位置的距离(一般没用)
0表示不变
1表示图像*1/2,同时距离(0,0)的x方向和y方向距离*1/2
2表示图像*(1/2)^2,同时距离(0,0)的x方向和y方向距离*(1/2)^2
第二种
rectangele
绘制矩形
共6个参数
第1个参数 输入
第2个参数 矩形的左上点+往对角方向延伸的距离(x1,x2,延伸长度1,延伸长度2)
第3个参数 矩形颜色
第4个参数 线宽
如果参数 >=0,则表示绘制矩形(如为1,表示绘制的矩形边为1个像素)
如果参数 < 0,则表示填充矩形(如-1,表示填充整个矩形)
第5个参数 lineType
关于图像锯齿,有几种方式处理
不管不顾,就用LINE_4 或者 LINE_8
消除锯齿,就用LINE_AA (AA就是反锯齿)
第6个参数 缩小图像,同时缩短矩形左上顶点与(0,0)位置的距离
0表示不变
1表示图像*1/2,同时距离(0,0)的x方向和y方向距离*1/2
2表示图像*(1/2)^2,同时距离(0,0)的x方向和y方向距离*(1/2)^2
-
void QuickDemo::bitwise_demo(Mat& image) {
-
-
Mat m1 = Mat::
zeros(
Size(
256,
256), CV_8UC3);
-
Mat m2 = Mat::
zeros(
Size(
256,
256), CV_8UC3);
-
-
//rectangle有两种传参方式,这里分别进行了示范
-
rectangle(m1,
Point(
100,
100),
Point(
180,
180),
Scalar(
255,
255,
0),
-1, LINE_8,
0);
-
-
rectangle(m2,
Rect(
150,
150,
80,
80),
Scalar(
0,
255,
255),
-1, LINE_8,
0);
-
-
imshow(
"m1", m1);
-
imshow(
"m2", m2);
-
}

2.位运算
在opencv中,图像的为运算有4种
- 与
- 或
- 非
- 异或
bitwise_and(m1, m2, dst);
//bitwise_or(m1, m2, dst);
//bitwise_not(m1, dst);
//bitwise_xor(m1, m2, dst);略
2.实例代码
-
void QuickDemo::bitwise_demo(Mat& image) {
-
-
Mat m1 = Mat::
zeros(
Size(
256,
256), CV_8UC3);
-
Mat m2 = Mat::
zeros(
Size(
256,
256), CV_8UC3);
-
-
rectangle(m1,
Point(
100,
100),
Point(
180,
180),
Scalar(
255,
255,
0),
-1, LINE_4,
0);
-
-
rectangle(m2,
Rect(
150,
150,
80,
80),
Scalar(
0,
255,
255),
-1,
0);
-
-
Mat dst;
-
-
bitwise_and(m1, m2, dst);
-
//bitwise_or(m1, m2, dst);
-
//bitwise_not(m1, dst);
-
//bitwise_xor(m1, m2, dst);
-
-
imshow(
"位运算",dst);
-
-
}
转载:https://blog.csdn.net/weixin_46098612/article/details/127774177
