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()
相关推荐
小智学长 | 嵌入式9 分钟前
进阶-数据结构部分:2、常用排序算法
java·数据结构·算法
少了一只鹅9 分钟前
字符函数和字符串函数
c语言·算法
ㄣ知冷煖★15 分钟前
【论文阅读】A Survey on Multimodal Large Language Models
人工智能·语言模型·自然语言处理
视觉语言导航1 小时前
兼顾长、短视频任务的无人机具身理解!AirVista-II:面向动态场景语义理解的无人机具身智能体系统
人工智能·无人机·具身智能
墨绿色的摆渡人1 小时前
pytorch小记(二十二):全面解读 PyTorch 的 `torch.cumprod`——累积乘积详解与实战示例
人工智能·pytorch·python
Dr.9271 小时前
1-10 目录树
java·数据结构·算法
moonsims1 小时前
低空态势感知:基于AI的DAA技术是低空飞行的重要安全保障-机载端&地面端
人工智能·安全
请你喝好果汁6411 小时前
Jupyter Notebook 配置学习笔记
笔记·学习·jupyter
冬日枝丫1 小时前
【spring】spring学习系列之六:spring的启动流程(下)
java·学习·spring
ocean10101 小时前
项目管理学习-CSPM-4考试总结
学习·程序人生