openCV_python自学笔记(1)

这篇博客介绍了如何使用OpenCV_Python库创建窗口并加载图片。讲解了`namedWindow`, `WINDOW_AUTOSIZE`, `WINDOW_NORMAL`, `resizeWindow`, `imread`, `imshow`, `waitKey`等函数的用法,并展示了创建窗口加载图片的代码示例。在代码中,作者发现并修复了一个关于键盘事件处理的逻辑问题,确保在按下'a'键后正确释放窗口资源。" 126872999,9175362,C#委托与事件解绑实战解析,"['C#', '开发语言', '事件处理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用opencv_python显示窗口加载图片

使用到的函数;

  1. namedWindow( winname, windowFlage) 创建一个窗口,常用flage有: WINDOW_AUTOSIZE:用户不能改变窗口大小,窗口大小根据图片尺寸来显示

    WINDOW_NORMAL: 可以随意拖拉窗口大小,可以给窗口大小设置默认尺寸

  2. resizeWindow( winname, with, high)设置窗口大小

  3. imread( path, imreadFlage)加载图片,该函数返回一个mat类型数据,flage = 0则加载灰度图像,=1则加载彩色图像,默认为1

  4. imshow(winname, mat类型【若无可用0代替】 ),把图片设置在窗口上显示出来

  5. waitKey(0): 键盘绑定函数,毫秒为单位,若传入0则无限期等待

IIMAGE

建立一个窗口加载一张图片代码段:

import cv2
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
img = cv2.imread('/STUDY_OPENCV/img/2.jpg')
cv2.resizeWindow('image',1080,946)
cv2.imshow('image',img)
key = cv2.waitKey(0)
if(key == 'a'):#键盘敲a则退出
    exit()

cv2.destroyAllWindows()#释放所有窗口资源

运行效果:
在这里插入图片描述
windows下访问图片路径: d:\\uuu\\xx\\xx.jpg
其实上面代码退出部分有点逻辑问题,以下做个测试

import cv2
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
img = cv2.imread('d:\\STUDY_OPENCV\\img\\2.jpg')
cv2.resizeWindow('image',1080,946)
cv2.imshow('image', img )
key = cv2.waitKey(0)
print(key)
print('a')
print(ord('a'))  #ord(‘a’)表示将a的ASCII码获取出来
if(key == 'a'):  #键盘敲a则退出
    print(1111)  #若条件进去则打印1111
    exit()

cv2.destroyAllWindows()#释放所有窗口资源

图片出来,按下‘a’之后运行结果:

可以发现并没有打印出11111,说明没有进去,key == 'a’这个条件不成立(一个是97,一个是a)
而且应该在按下a之后就立马释放窗口资源,否则退出之后再释放就无意义
waitKey()返回值是int型,ascii码是八位
修改后代码如下

import cv2
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
img = cv2.imread('d:\\STUDY_OPENCV\\img\\2.jpg')
cv2.resizeWindow('image',1080,946)
cv2.imshow('image', img )
key = cv2.waitKey(0)
# print(key)
# print('a')
# print(ord('a'))  #ord(‘a’)表示将a的ASCII码获取出来
if(key & 0xFF == ord('a')):  #键盘敲a则退出,取key的后八位看其是否相等(也可以不用&oxff)
    print(1111)  #若条件进去则打印1111
    cv2.destroyAllWindows()#释放所有窗口资源

图片出来,按下‘a’之后运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值