【OpenCV】1 读取与保存图片

慕课网课程笔记

一、创建显示窗口

image

import cv2


cv2.namedWindow('new', cv2.WINDOW_NORMAL) # 创建窗口
cv2.resizeWindow('new', 800, 600)         # 窗口尺寸
cv2.imshow('new', 0)                      # 显示窗口

key = cv2.waitKey(0)
if (key & 0xFF == ord('q')):
    cv2.destroyAllWindows()

二、加载并显示图片

image

import cv2


cv2.namedWindow('img', cv2.WINDOW_NORMAL) # 创建窗口
img = cv2.imread("img\cat.jpg")
cv2.imshow('img', img)                     

key = cv2.waitKey(0)
if (key & 0xFF == ord('q')):
    cv2.destroyAllWindows()

三、保存图片

import cv2


cv2.namedWindow('img', cv2.WINDOW_NORMAL) # 创建窗口
img = cv2.imread("img\cat.jpg")

while True:
    cv2.imshow('img', img)                     

    key = cv2.waitKey(0)
    if (key & 0xFF == ord('q')):
        break
    elif (key & 0xFF == ord('s')):
        cv2.imwrite("img\cat_saved.jpg", img)
    else:
        print(key)

cv2.destroyAllWindows()

image
image

备注

💡 标为什么使用 if (key & 0xFF == ord('q'))

作用:

检测用户是否按下了键盘上的 q 键,从而触发退出程序的逻辑。跨平台兼容的按键检测方式,确保准确识别 q 键。

ord('q'):返回字符 q 的 ASCII 码

key & 0xFF:在某些操作系统或环境中,cv2.waitKey() 的返回值可能是一个 32 位整数(高 8 位可能包含额外信息),而我们只需要低 8 位的 ASCII 码部分。通过与 0xFF(二进制 11111111)进行按位与运算,可以提取出低 8 位,确保只比较按键的 ASCII 码。

posted @ 2025-09-04 14:38  苦涩如影相随固  阅读(11)  评论(0)    收藏  举报