Opencv图像灰度化,图像保存,按键事件(附带解析)

import cv2
import numpy as np
"""
图像灰度化,图像保存,按键事件
1.读取本地图片
2.输出当前图片的宽、高、通道数
3.显示图片
4.判断用户输入
    如果输入为q则退出,
    如果输入为m则保存灰度化图片到本地
    否则继续等待
"""
img = cv2.imread("download.png")  # 读取图片
print(np.array(img).shape)  # 输出图片的宽、高、通道数
cv2.imshow("download.png", img)  # 显示文件

keypress = cv2.waitKey(200)  # 等待用户键盘,延时200ms
while keypress != ord('q') and keypress != ord('m'):  # 判断用户的键盘输入,ord为将字符转为ascii码值
    keypress = cv2.waitKey(200)  # 如果不符合操作,循环继续等待

if keypress == ord('m'):  # 用户如果按下m键保存图片到本地
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # bgr转换到灰度
    cv2.imwrite("gray.jpg", gray)

# 销毁所有的窗口
cv2.destroyAllWindows()

这段代码使用 OpenCV 加载图像文件 "download.png",显示该图像,然后等待用户的键盘输入。如果用户按下 'q' 键,程序退出;如果用户按下 'm' 键,程序将图像转换为灰度图并保存为 "gray.jpg"。

以下是代码的主要步骤:

  1. 使用 OpenCV 的 cv2.imread 函数读取图像文件 "download.png"。

  2. 使用 np.array(img).shape 输出图像的宽度、高度和通道数。

  3. 使用 cv2.imshow 显示读取的图像,窗口标题为 "download.png"。

  4. 使用 cv2.waitKey(200) 等待用户的键盘输入,等待时间为 200 毫秒。在等待期间,程序会持续检测用户按键。

  5. 进入循环,判断用户的键盘输入,如果输入是 'q' 或 'm' 之一,则退出循环。

  6. 如果用户按下 'm' 键,使用 cv2.cvtColor 将图像转换为灰度图,然后使用 cv2.imwrite 将灰度图保存为 "gray.jpg"。

  7. 使用 cv2.destroyAllWindows() 关闭所有打开的窗口。

请注意,在Jupyter Notebook中执行这样的代码可能会导致窗口无法正确显示,因为Jupyter不是一个交互式图形用户界面(GUI)环境。最好在本地Python脚本或集成开发环境(IDE)中运行此类代码。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值