---
title: bitwise_and
description: "bitwise_and用于对两幅图像或一个图像与掩码进行逐像素的按位与计算。该函数主要用于图像处理中的逻辑操作，例如提取特定区域、合并图像特定部分等。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_kpcv_06_0041.html
sourcePath: /source/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_kpcv_06_0041.html
indexId: 07ec9fe5c69a725b9693d4dafb137344d4b4f7cb14ba214a282151cf72068a0e77
---
# bitwise_and

#### 函数功能

bitwise_and用于对两幅图像或一个图像与掩码进行逐像素的按位与计算。该函数主要用于图像处理中的逻辑操作，例如提取特定区域、合并图像特定部分等。


#### 函数接口

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


#### 参数

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| src1 | 第一幅输入图像。 | 非空 | 输入 |
| src2 | 第二幅输入图像。 | 非空，与src1尺寸相同 | 输入 |
| dst | 输出图像。 | Mat类型 | 输入 |
| mask | 可选掩码，用于指定计算区域。 | Mat类型 | 输入 |


#### 示例

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

using namespace cv;

int main() {
    // 读取两幅图像
    Mat img1 = imread("image1.jpg");
    Mat img2 = imread("image2.jpg");

    if (img1.empty() || img2.empty()) {
        std::cerr << "无法加载图像!" << std::endl;
        return -1;
    }

    // 调整图像尺寸以匹配
    resize(img2, img2, img1.size());

    // 进行按位与操作
    Mat dst;
    bitwise_and(img1, img2, dst);

    // 显示结果
    imshow("图像1", img1);
    imshow("图像2", img2);
    imshow("按位与结果", dst);
    waitKey(0);

    return 0;
}
```
