欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > pyhton 掩码 筛选显示

pyhton 掩码 筛选显示

2025/6/17 6:29:52 来源:https://blog.csdn.net/jacke121/article/details/144907718  浏览:    关键词: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 timeif __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 秒

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词