opencv学习:图像掩码处理和直方图分析及完整代码

图像掩码是一种二值图像,用于控制图像处理操作的应用区域。通过将掩码与原图像进行按位与操作,可以提取或屏蔽图像的特定部分。直方图是图像处理中的一个重要工具,用于分析图像的灰度分布。

实验步骤

  1. 使用OpenCV读取图像文件"phone.png"为灰度图像。

    python 复制代码
    phone=cv2.imread("phone.png",cv2.IMREAD_GRAYSCALE)
  2. 创建一个与原图像大小相同的掩码,并在指定区域设置掩码值为255。

    python 复制代码
    mask=np.zeros(phone.shape[:2],np.uint8)
    mask[50:350,100:470]=255
    cv2.imshow("mask",mask)
  3. 应用掩码,通过按位与操作提取掩码区域的图像。

    python 复制代码
    phone_mask=cv2.bitwise_and(phone,phone,mask=mask)
    cv2.imshow("phone_mask",phone_mask)
  4. 使用掩码计算提取区域的灰度直方图。

    python 复制代码
    phone_hist_mask=cv2.calcHist([phone],[0],mask,[256],[0,256])
  5. 使用Matplotlib绘制直方图。

    python 复制代码
    plt.plot(phone_hist_mask)

实验结果

完整代码

python 复制代码
phone=cv2.imread("phone.png",cv2.IMREAD_GRAYSCALE)
mask=np.zeros(phone.shape[:2],np.uint8)
mask[50:350,100:470]=255
cv2.imshow("mask",mask)
cv2.waitKey(0)

phone_mask=cv2.bitwise_and(phone,phone,mask=mask)
cv2.imshow("phone_mask",phone_mask)
cv2.waitKey(0)

phone_hist_mask=cv2.calcHist([phone],[0],mask,[256],[0,256])
plt.plot(phone_hist_mask)
cv2.waitKey(0)
plt.show()
相关推荐
困死,根本不会2 分钟前
OpenCV摄像头实时处理:九宫格棋盘检测与棋子识别
笔记·opencv·学习
MicroTech20253 分钟前
量子仿真新基石:MLGO微算法科技专用地址生成器驱动量子算法仿真革命
科技·算法·量子计算
WBluuue6 分钟前
数据机构与算法:dp优化——倍增优化
c++·算法·leetcode·动态规划
zhangfeng11338 分钟前
deepseek部署和训练的PyTorch CUDA Transformers Accelerate PEFT稳定版本呢推荐
人工智能·pytorch·python
2501_947908209 分钟前
范建峰携手安盛投资 助力普惠金融惠及更多民生领域
大数据·人工智能·金融
Bruk.Liu10 分钟前
(LangChain实战5):LangChain消息模版ChatPromptTemplate
人工智能·python·langchain·agent
乾元11 分钟前
暗网情报:自动化采集与情感分析在威胁狩猎中的应用
运维·网络·人工智能·深度学习·安全·架构·自动化
YangYang9YangYan13 分钟前
2026高职大数据专业数据分析学习必要性
大数据·学习·数据分析
静听松涛13315 分钟前
开源AI崛起:技术普惠与创新加速的新引擎
人工智能·开源
范纹杉想快点毕业17 分钟前
嵌入式实时系统架构设计:基于STM32与Zynq的中断、状态机与FIFO架构工程实战指南,基于Kimi设计
c语言·c++·单片机·嵌入式硬件·算法·架构·mfc