1. 前言
三种逻辑运算 与 或 非
2. 绘制矩形
绘制矩形和填充矩形均为一个函数
也可以用重载函数
2.1 填充矩形
// 绘制矩形 1.mat 2.矩形坐标(x,y,宽,高)3.线宽,线宽是1是一个像素绘制,-1表示不绘制,只填充
// 4.绘制方法(一般是用来消灭锯齿),一般是LINE_8,作为8个像素提供资源。LINE_AA是消灭锯齿,反应速度很慢
rectangle(m1, Rect(100, 100, 80, 80), Scalar(255, 255, 0),-1,LINE_8,0);
rectangle(m2, Rect(150, 150, 80, 80), Scalar(0, 255, 0), -1, LINE_8, 0);
2.2 绘制矩形
// 描边
// rectangle(m1, Rect(100, 100, 80, 80), Scalar(255, 255, 0),2,LINE_8,0);
// rectangle(m2, Rect(150, 150, 80, 80), Scalar(0, 255, 0), 2, LINE_8, 0);
3 逻辑操作
逻辑操作的通道顺序是BGR
3.1 为操作
void QuickDemo::bitwise_demo(Mat &image)
{
Mat m1 = Mat::zeros(Size(256, 256), CV_8UC3);
Mat m2 = Mat::zeros(Size(256, 256), CV_8UC3);
// 绘制矩形 1.mat 2.矩形坐标(x,y,宽,高)3.线宽,线宽是1是一个像素绘制,-1表示不绘制,只填充
// 4.绘制方法(一般是用来消灭锯齿),一般是LINE_8,作为8个像素提供资源。LINE_AA是消灭锯齿,反应速度很慢
rectangle(m1, Rect(100, 100, 80, 80), Scalar(255, 255, 0),-1,LINE_8,0);
rectangle(m2, Rect(150, 150, 80, 80), Scalar(0, 255, 0), -1, LINE_8, 0);
// 描边
// rectangle(m1, Rect(100, 100, 80, 80), Scalar(255, 255, 0),2,LINE_8,0);
// rectangle(m2, Rect(150, 150, 80, 80), Scalar(0, 255, 0), 2, LINE_8, 0);
imshow("m1", m1);
imshow("m2", m2);
Mat dst;
bitwise_and(m1, m2, dst);
}
保留了均有的绿色255通道,
3.2 或操作
bitwise_or(m1, m2, dst);
3.3 非操作
反向
bitwise_not(image, dst);
3.4 异或操作
bitwise_xor(m1, m2, dst);