其他分享
首页 > 其他分享> > 位操作

位操作

作者:互联网

位操作

逻辑门

简介

类型 名称 短释 逻辑函数表示 真值表
AND 逻辑与 所有输入为高时,才会有高的输出。一低出低。 A * B
OR 逻辑或 所有输入为低时,才会有低的输出。一高出高。 A + B
NOT 逻辑非 输入的高低状态会逆转。 A'
XOR 逻辑异或 输入相同时输出为低,否则为高。 A' * B + A * B'

图像的逻辑运算

简介

函数

void cv::bitwise_and(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray())
void cv::bitwise_or(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray())
void cv::bitwise_xor(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray())
void cv::bitwise_not(InputArray src, OutputArray dst, InputArray mask = noArray())

示例代码:

#include <opencv2/opencv.hpp>
using namespace cv;

int main()
{
    Mat img = imread("/home/kslas/OpenCV/test.jpg");

    // 创建两个黑白图像
    Mat img0 = Mat::zeros(200, 200, CV_8UC1);
    Mat img1 = Mat::zeros(200, 200, CV_8UC1);
    Rect rect0(50, 50, 100, 100);
    img0(rect0) = Scalar(255);
    Rect rect1(100, 100, 100, 100);
    img1(rect1) = Scalar(255);
    imshow("img0", img0);
    imshow("img1", img1);

    // 进行逻辑运算
    Mat myAnd, myOr, myXor, myNot, imgNot;
    bitwise_not(img0, myNot);
    bitwise_and(img0, img1, myAnd);
    bitwise_or(img0, img1, myOr);
    bitwise_xor(img0, img1, myXor);
    bitwise_not(img, imgNot);
    imshow("myAnd", myAnd);
    imshow("myOr", myOr);
    imshow("myXor", myXor);
    imshow("myNot", myNot);
    imshow("img", img);
    imshow("imgNot", imgNot);
    waitKey(0);
    destroyAllWindows();
    return 0;
}

运行结果:

标签:位操作,逻辑,逻辑运算,InputArray,imshow,bitwise,img0
来源: https://www.cnblogs.com/TNTksals/p/15834108.html