ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

位操作

2022-01-22 15:32:12  阅读:222  来源: 互联网

标签:位操作 逻辑 逻辑运算 InputArray imshow bitwise img0


位操作

逻辑门

简介

  • 逻辑门(Logic Gates)是在集成电路(Integrated Circuit)上的基本组件。简单的逻辑门可由晶体管组成。这些晶体管的组合可以使代表两种信号的高低电平在通过它们之后产生高电平或者低电平的信号。高、低电平可以分别代表逻辑上的“真”与“假”或二进制当中的1和0,从而实现逻辑运算
  • 逻辑运算是指对二进制数各数字位的0和1分别进行处理的运算,包括逻辑非(NOT运算)、逻辑与(AND运算)、逻辑或(OR运算)和逻辑异或(XOR运算)四种
类型 名称 短释 逻辑函数表示 真值表
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())
  • src:图像矩阵或标量
  • dst:逻辑运算输出结果,尺寸、通道数和数据类型都需要与输出图像一致
  • mask:掩模,用于设置图像或矩阵中逻辑运算的范围

示例代码:

#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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有