当前位置: 首页 > article >正文

pyhton 掩码 筛选显示

目录

bitwise_and控制:

点乘:

性能对比:


bitwise_and控制:

import cv2

# 读取彩色图和mask二值图
color_img = cv2.imread('color_image.jpg')
mask = cv2.imread('mask.jpg', 0)  # 以灰度模式读取二值图

# 确保彩色图和mask的尺寸一致
if color_img.shape[:2]!= mask.shape[:2]:
    mask = cv2.resize(mask, (color_img.shape[1], color_img.shape[0]))

# 对彩色图和mask进行按位与操作
result = cv2.bitwise_and(color_img, color_img, mask=mask)

# 显示结果
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

点乘:

  mask = mask_o == 0  # 这里假设 0 表示需要遮罩的区域
                    # 对原图像进行遮罩处理
  mask_image = image * mask[:, :, None]  # 扩展掩码为三维并与图像相乘

性能对比:

import cv2
import numpy as np
import time

if __name__ == '__main__':

    # 创建一个模拟的1080p彩色图像(这里使用随机像素值生成)
    image = np.random.randint(0, 256, (1080, 1920, 3), dtype=np.uint8)

    # 创建一个模拟的二值mask图像,这里简单假设一半区域为需要遮罩区域(0表示遮罩)
    mask_o = np.random.randint(0, 2, (1080, 1920), dtype=np.uint8)
    mask = mask_o == 0

    # 方法一:使用乘法运算进行遮罩处理
    start_time_1 = time.time()
    mask_image_1 = image * (mask[:, :, None])
    end_time_1 = time.time()
    print(f"使用乘法运算进行遮罩处理耗时: {end_time_1 - start_time_1} 秒")

    # 方法二:使用cv2.bitwise_and进行遮罩处理
    # 先将mask转换为合适的格式(与图像通道数匹配的三通道形式)
    mask_3_channel = np.stack([mask] * 3, axis=2).astype(np.uint8)
    start_time_2 = time.time()
    mask_image_2 = cv2.bitwise_and(image, image, mask=mask.astype(np.uint8))
    end_time_2 = time.time()
    print(f"使用cv2.bitwise_and进行遮罩处理耗时: {end_time_2 - start_time_2} 秒")

使用乘法运算进行遮罩处理耗时: 0.00599980354309082 秒
使用cv2.bitwise_and进行遮罩处理耗时: 0.0030002593994140625 秒


http://www.kler.cn/a/471364.html

相关文章:

  • c#使用SevenZipSharp实现压缩文件和目录
  • QML学习(八) Quick中的基础组件:Item,Rectangle,MouseArea说明及使用场景和使用方法
  • 【C语言】可移植性陷阱与缺陷(八): 随机数的大小
  • 大数据-268 实时数仓 - ODS层 将 Kafka 中的维度表写入 DIM
  • 【python】matplotlib(radar chart)
  • QT-TCP-server
  • Python中的时间管理模块:whenever
  • nuxt3发请求
  • 秋叶大神中文版Stable Diffusion下载安装使用教程
  • PHP二维数组去除重复值
  • 9. C 语言 循环控制结构详解
  • Flutter 鸿蒙化 flutter和鸿蒙next混和渲染
  • 图漾相机基础操作
  • 更换WordPress主题的基础知识及注意事项
  • B-tree 数据结构详解
  • STM32 I2C硬件配置库函数
  • pytorch torch.isclose函数介绍
  • 基于单片机的室外休闲智能座椅设计(论文+源码)
  • 设计模式 行为型 策略模式(Strategy Pattern)与 常见技术框架应用 解析
  • 数据库课设——网上花店销售管理系统(上)
  • Jina AI/Reader:将 URL 和 PDF 内容自动化提取并转换为 LLM 可处理文本
  • 创建型模式5.单例模式
  • 【Linux】文件的压缩与解压
  • 利用Python爬虫获取API接口:探索数据的力量
  • Jenkins pipeline 发送邮件及包含附件
  • 【杂谈】-DeepSeek如何以560万美元突破成本障碍