OpenCV中像素逻辑运算:逻辑非运算

OPenCV版本:4.4

IDE:VS2019

功能描述

翻转一个矩阵里每一位,就是把1转成0,把0转成1.

函数cv::bitwise_not 计算输入矩阵里的逻辑非运算:

[ dst ( I ) = ¬ src ( I ) ] [\texttt{dst} (I) = \neg \texttt{src} (I)] [dst(I)=¬src(I)]

输入矩阵是浮点型的情况下,有机器决定位表现形式 (通常是IEEE754标准)来进行操作,矩阵多通道的情况下,每个通道独立处理sed independently.

函数原型

CV_EXPORTS_W void bitwise_not(InputArray src, OutputArray dst,
                              InputArray mask = noArray());

参数描述

  • @参数 src 输入矩阵
  • @参数 dst 输出矩阵,和输入矩阵同样大小和类型.
  • @参数 mask 可选操作掩摸,8位单通道矩阵,确定输出矩阵将要改变的元素.

源码示例

#include <iostream>
#include <opencv2/opencv.hpp>


int main() {
	cv::Mat image = cv::imread("D:\\OpenCVtest\\images\\juice.png");
	cv::Mat out;

	bitwise_not(image, out);

	cv::imshow("矩阵原图", image);
	cv::imshow("位非运算结果图", out);
	cv::waitKey(0);
	return 0;
}

运算结果

输入矩阵:
在这里插入图片描述

输出矩阵:

在这里插入图片描述

### OpenCV 中图像逻辑运算 #### 按位与 (Bitwise AND) 按位与操作会逐像素比较两个输入图像,并返回一个新的图像,其中每个像素是对应位置上两幅图像相应像素的按位与结果。 ```python import cv2 import numpy as np # 读取两张图片 image1 = cv2.imread("image1.jpg") image2 = cv2.imread("image2.jpg") # 执行按位与操作 result_and = cv2.bitwise_and(image1, image2) cv2.imshow('AND Operation', result_and) cv2.waitKey(0) cv2.destroyAllWindows() ``` 此代码展示了如何加载两张彩色图像并执行按位与操作[^3]。 #### 按位或 (Bitwise OR) 按位或操作会对每一对对应的像素应用逻辑或运算。如果任意一个源图像中的某个像素不为零,则目标图像中相应的像素也将被设置为非零值。 ```python # 执行按位或操作 result_or = cv2.bitwise_or(image1, image2) cv2.imshow('OR Operation', result_or) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码实现了对同一组输入图像进行按位或的操作。 #### 按位异或 (Bitwise XOR) 对于给定的一对像素,当且仅当其中一个而不是两者都具有不同的二进制值时,XOR 的输出才会有高电平(即 '1')。 ```python # 执行按位异或操作 result_xor = cv2.bitwise_xor(image1, image2) cv2.imshow('XOR Operation', result_xor) cv2.waitKey(0) cv2.destroyAllWindows() ``` 上述脚本演示了如何利用 `bitwise_xor` 函数来处理图像数据。 #### 按位非 (Bitwise NOT) NOT 操作是对单个图像执行的,它反转每一个像素的颜色强度;白色变为黑色,反之亦然。 ```python # 对单一图像执行按位非操作 result_not = cv2.bitwise_not(image1) cv2.imshow('NOT Operation on Image1', result_not) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这表明可以通过调用 `bitwise_not()` 方法轻松实现这一效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村北头的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值