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()
相关推荐
IT_陈寒2 小时前
React组件莫名重渲染?你可能忘了这个小细节
前端·人工智能·后端
天远API2 小时前
零信任架构实战:基于天远公安二要素政务版构建自动化不动产交易与契税核算实名核实网关
人工智能·架构·自动化·php
朋友圈自动点赞工具2 小时前
浏览器端AI模型实测:五个可用场景
人工智能
承渊政道2 小时前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(从ChatGLM本地化到LoRA、PEFT的高级微调)
android·人工智能·pytorch·chatglm·本地化部署·大模型开发与微调
盟接之桥2 小时前
盟接之桥谈线束数字化-按单入按单出:线束企业库存管理的破局之道
大数据·前端·网络·数据库·人工智能·制造
Summer-Bright2 小时前
浏览器成了AI应用的新入口:智能体接管标签页之后,三本账谁买单
人工智能·chatgpt·agent·浏览器·智能体
xiaohaiAIgeo3 小时前
【2026年】紧急医疗运送送返:保额怎么看、多少够用
人工智能·科普知识
倚楼听风语3 小时前
Kotlin 协程与 suspend 原理详解
java·算法·kotlin
程序员清风3 小时前
双指针与滑动窗口:高效处理连续区间
开发语言·算法
代钦塔拉3 小时前
【C++/Qt 进阶】设计模式系列(2):工厂模式——从游戏角色到披萨店
c++·算法·设计模式