Opencv中cv2.calcHist的mask的使用方法

引入

我们用来画直方图函数:

复制代码
cv2.calcHist([img], [0], mask, [256], [0, 256])

有一个mask属性.我们应该如何去使用它呢,以及他的作用是什么

mask顾名思义就是一个遮罩层,我们可以选择图片上我们想要的位置进行画直方图


实际用法介绍

首先我们用一张图片来进行讲解

陶大郎的耳朵!

我们这个时候想要截取耳朵上选定的部分,我们应该怎么做呢?


原理介绍


图中的①操作:

python 复制代码
import cv2
import numpy as np
from matplotlib import pyplot as plt

img =cv2.imread("test.jpg", 0)
# 未选定位置全为黑色
mask = np.zeros(img.shape[:2], np.uint8)
# 选定位置全为白色
mask[50:100, 50:100] = 255

cv2.imshow("mask",mask)
cv2.waitKey()
cv2.destroyAllWindows()

运行结果:


图中的②操作

python 复制代码
import cv2
import numpy as np
from matplotlib import pyplot as plt

img =cv2.imread("test.jpg", 0)
mask = np.zeros(img.shape[:2], np.uint8)
mask[50:100, 50:100] = 255
# 新加入
masked_img = cv2.bitwise_and(img,img,mask=mask)
cv2.imshow("masked_img",masked_img)
cv2.waitKey()
cv2.destroyAllWindows()

只在①的基础上加上了 masked_img = cv2.bitwise_and(img,img,mask=mask)

运行结果


使用我们的mask进行直方图绘制

python 复制代码
import cv2
import numpy as np
from matplotlib import pyplot as plt

img =cv2.imread("test.jpg", 0)
# 未选定位置全为黑色
mask = np.zeros(img.shape[:2], np.uint8)
# 选定位置全为白色
mask[50:100, 50:100] = 255
hist = cv2.calcHist([img], [0], mask, [256], [0, 256])
plt.plot(hist, color = 'r')
plt.xlim([0, 256])
plt.show()
复制代码
cv2.calcHist([img], [0], None, [256], [0, 256])变为了
复制代码
cv2.calcHist([img], [0], mask, [256], [0, 256])

我们加上了我们定义的mask

注意:我们把 masked_img = cv2.bitwise_and(img,img,mask=mask) 给去除了,因为在上面我们知识用它来给大家展示效果,在运用到直方图的时候只需要把我们的mask传入进去,就相当于做了这么个效果

相关推荐
CoderIsArt6 分钟前
Lepton AI 平台完整解析:架构、原理、场景与演示
人工智能·lepton ai
大模型真好玩7 分钟前
LangGraph1.0速通指南(三)—— LangGraph1.0 自动邮件处理智能体实战
人工智能·langchain·agent
美林数据Tempodata10 分钟前
智能体技术应用专业建设方案与实施路径
人工智能·ai·智能体·智能体技术应用·智能体技术应用专业
汽车仪器仪表相关领域13 分钟前
ZRT-V 机器人减速器寿命测试系统:精准破解 “寿命焦虑” 的核心测试方案
人工智能·功能测试·机器学习·单元测试·机器人·可用性测试·安全性测试
b***251113 分钟前
动力电池气动点焊机:新能源汽车制造中的精密焊接解决方案
大数据·人工智能·自动化
软件测试小仙女13 分钟前
认真测试大语言模型(LLM)
软件测试·人工智能·测试工具·ai·语言模型·自然语言处理·llm
小陈phd15 分钟前
大语言模型实战(六)——面向目标架构案例之FunctionCall技巧介绍
人工智能·语言模型·架构
MarkHD17 分钟前
智能体在车联网中的应用:第14天 卷积神经网络(CNN)专精:从卷积原理到LeNet-5实战车辆图像分类
人工智能·分类·cnn
AI人工智能+18 分钟前
文档结构化系统:利用OCR、自然语言处理等技术实现档案智能识别、自动分类和多维度关联
人工智能·ocr·文档结构化
斯外戈的小白18 分钟前
【NLP】深入浅出Transform(上)原理部分
人工智能·自然语言处理·transformer