位操作
位操作
逻辑门
简介
- 逻辑门(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' | ![]() |
图像的逻辑运算
简介
-
图像像素间的逻辑运算与数字间的逻辑运算相同
-
在进行逻辑运算时,一定要保证两个图像矩阵之间的尺寸、数据类型和通道数相同
-
多个通道进行逻辑运算时不同通道之间是独立进行的
API
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; }
运行结果:
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现