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()
相关推荐
阑梦清川1 分钟前
算法竞赛---宽度优先遍历求解最短路径问题(方向数组里面是4个元素)
算法
想睡觉的树2 分钟前
windows双系统下ubuntu20.04安装教程
学习
wuxuanok11 分钟前
八股——Kafka相关
java·笔记·后端·学习·kafka
Ghost-Face15 分钟前
《算法导论》笔记——循环不变式及插入排序证明
算法
不可描述的两脚兽15 分钟前
学习笔记《区块链技术与应用》第六天 问答 匿名技术 零知识证明
笔记·学习·区块链
居然JuRan16 分钟前
解锁17种RAG秘籍,大模型生成质量狂飙之路
人工智能
qq_3863226923 分钟前
华为网路设备学习-26(BGP协议 二)路径属性
学习
Elohim81530 分钟前
FreeRTOS学习(一)
学习·freertos
想你依然心痛32 分钟前
编程算法:技术创新与业务增长的核心驱动力
算法
AI technophile36 分钟前
OpenCV计算机视觉实战(18)——视频处理详解
opencv·计算机视觉·音视频