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

OPenCV版本:4.4

IDE:VS2019

功能描述

计算两个矩阵的逻辑与运算(dst = src1 & src2),计算两个矩阵或一个矩阵与一个scalar的每个元素的位运算,

  • 两个矩阵的大小要一样
    [ dst ( I ) = src1 ( I ) ∧ src2 ( I ) if   mask ( I ) ≠ 0 ] [\texttt{dst} (I) = \texttt{src1} (I) \wedge \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0] [dst(I)=src1(I)src2(I)if mask(I)=0]

  • .如果是一个矩阵和一个scalar,src2是由和src1.channels()一样的元素数量的 Scalar组成。
    [ dst ( I ) = src1 ( I ) ∧ src2 if   mask ( I ) ≠ 0 ] [\texttt{dst} (I) = \texttt{src1} (I) \wedge \texttt{src2} \quad \texttt{if mask} (I) \ne0] [dst(I)=src1(I)src2if mask(I)=0]

  • 如果是一个scalar和一个矩阵,src1是由和src2.channels()一样的元素数量的 Scalar组成。
    [ dst ( I ) = src1 ∧ src2 ( I ) if   mask ( I ) ≠ 0 ] [\texttt{dst} (I) = \texttt{src1} \wedge \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0] [dst(I)=src1src2(I)if mask(I)=0]

如果是浮点数的矩阵,由机器决定的位表示法(通常是 IEEE754)来进行操作,如果是多通道矩阵,每个通道单独处理,以上第二和第三种情况下, scalar首先要转换成矩阵类型。

函数原型

CV_EXPORTS_W void bitwise_and(InputArray src1, InputArray src2,
                              OutputArray dst, InputArray mask = noArray());

参数描述

  • @参数 src1 第一个输入矩阵或一个 scalar
  • @参数 src2 第二个输入矩阵或一个 scalar
  • @参数 dst 输出矩阵,和输入矩阵同样大小和类型.
  • @参数 mask 可选操作,8位单通道矩阵,确定输出矩阵将要改变的元素.

源码示例

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

int main() {
	cv::Mat image = cv::imread("D:\\OpenCVtest\\images\\juice.png");
	cv::Mat mask(image.rows, image.cols, CV_8UC3, cv::Scalar(0, 0, 0));
	std::cout << image.rows << "  "<< image.cols;
	cv::Rect r(100, 130, 250, 400); 
	rectangle(mask, r, cv::Scalar(255, 255, 255), -1);
	cv::Mat out;
	bitwise_and(image, mask, out);
	cv::imshow("第一个矩阵原图", image);
	cv::imshow("第二个矩阵原图", mask);
	cv::imshow("位与运算结果图", out);
	cv::waitKey(0);
	return 0;
}

运算结果

第一个输入矩阵:

在这里插入图片描述

第二个输入矩阵:

在这里插入图片描述

输出矩阵:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值