二值图像的生成与修改:OpenCV 实践指南

在图像处理领域,二值图像是一种非常重要的数据类型,它只包含两种像素值:黑色和白色。二值图像通常用于边缘检测、图像分割、特征提取等任务。今天,我们将通过一个简单的 Python 脚本,学习如何使用 OpenCV 库生成和修改二值图像。

环境准备

在开始之前,请确保你已经安装了 Python 和 OpenCV。如果还没有安装,可以通过以下命令安装:

bash 复制代码
pip install opencv-python
pip install opencv-contrib-python
pip install numpy

编写脚本

下面是一个 Python 脚本,它演示了如何创建一个二值图像,修改其像素点,并显示修改前后的结果。

python 复制代码
import cv2
import numpy as np

def image_operation():
    # 创建一个 8x8 的全黑图像
    img = np.zeros((8, 8), dtype=np.uint8)
    print("img=\n", img)
    # 显示原始图像
    cv2.imshow("one", img)
    # 读取并打印一个像素点的值
    print("读取像素点 img[0,3]=", img[0, 3])
    # 修改该像素点的值为白色(255)
    img[0, 3] = 255
    # 打印修改后的图像
    print("修改后 img=\n", img)
    # 再次读取并打印修改后的像素点的值
    print("读取修改后像素点 img[0,3]=", img[0, 3])
    # 显示修改后的图像
    cv2.imshow("two", img)
    # 等待按键事件
    cv2.waitKey()
    # 销毁所有窗口
    cv2.destroyAllWindows()

if __name__ == '__main__':
    image_operation()

脚本解析

  1. 导入库 :首先,我们导入了 cv2numpycv2 是 OpenCV 的 Python 接口,而 numpy 用于高效的数组操作。

  2. 创建二值图像 :使用 numpyzeros 函数创建一个 8x8 的全黑图像。这里的 dtype=np.uint8 指定了图像数据的类型,uint8 意味着每个像素点的值范围是 0 到 255。

  3. 显示图像 :使用 cv2.imshow() 函数显示图像。第一个参数是窗口的标题,第二个参数是图像本身。

  4. 读取和修改像素点 :通过索引 img[0,3] 读取并打印一个像素点的值。然后,将该像素点的值设置为 255,这在灰度图像中代表白色。

  5. 再次显示图像 :修改像素点后,再次使用 cv2.imshow() 显示图像,以展示修改效果。

  6. 等待和清理cv2.waitKey() 函数等待用户按键,然后 cv2.destroyAllWindows() 销毁所有创建的窗口。

结论

通过这个简单的示例,我们学习了如何使用 OpenCV 和 Numpy 创建和修改二值图像。这只是 OpenCV 强大功能的冰山一角。随着你对 OpenCV 的进一步学习,你将能够实现更复杂的图像处理和计算机视觉任务。

希望这个教程能帮助你开始你的 OpenCV 之旅。继续探索,享受编程的乐趣!

相关推荐
Up九五小庞4 分钟前
本地部署 + Docker 容器化实战:中医舌诊 AI 项目 TongueDiagnosis 部署全记录-九五小庞
人工智能
John_ToDebug26 分钟前
2025年度个人总结:在技术深海中锚定价值,于时代浪潮中重塑自我
人工智能·程序人生
自可乐37 分钟前
n8n全面学习教程:从入门到精通的自动化工作流引擎实践指南
运维·人工智能·学习·自动化
king of code porter41 分钟前
百宝箱企业版搭建智能体应用-创建应用
人工智能·大模型·智能体
HDO清风1 小时前
CASIA-HWDB2.x 数据集DGRL文件解析(python)
开发语言·人工智能·pytorch·python·目标检测·计算机视觉·restful
策知道1 小时前
依托政府工作报告准备省考【经验贴】
大数据·数据库·人工智能·搜索引擎·政务
工程师老罗1 小时前
Pytorch如何加载和读取VOC数据集用来做目标检测?
人工智能·pytorch·目标检测
测试_AI_一辰1 小时前
Agent & RAG 测试工程05:把 RAG 的检索过程跑清楚:chunk 是什么、怎么来的、怎么被命中的
开发语言·人工智能·功能测试·自动化·ai编程
Henry-SAP1 小时前
SAP(ERP) 组织结构业务视角解析
大数据·人工智能·sap·erp·sap pp
龙腾亚太1 小时前
航空零部件加工变形难题破解:数字孪生 + 深度学习的精度控制实战
人工智能·深度学习·数字孪生·ai工程师·ai证书·转型ai