opencv学习笔记——1.0

文章介绍了OpenCV库在Python中的使用,包括通过conda配置环境,使用cv.imread()读取和cv.imshow()显示图像,cv.waitKey()处理键盘事件,以及如何保存图像。此外,还提及了cv.imwrite()函数和使用Matplotlib显示图像的注意事项,如颜色模式的差异。
摘要由CSDN通过智能技术生成

opencv简介

OpenCV 是计算机视觉中经典的专用库,其支持多语言、跨平台,功能强大。OpenCV-Python为OpenCV提供了Python接口,使得使用者在Python中能够调用C/C++,在保证易读性和运行效率的前提下,实现所需的功能。

环境配置

使用conda创建环境,pip下载numpy、matplotlib、opencv-python,再通过pycharm使用对应的解释器。这里在网上看到推荐下载opencv-contrib-python包,但是使用基础包大概没有什么问题,大不了以后再换

  • 这里遇到了pycharm没有opencv的代码补全功能,参考(https://zhuanlan.zhihu.com/p/617164055)
    将cv2.pyd放到上一级目录即可解决
import numpy as np
import matplotlib
import cv2 as cv

图像入门

读取图像
  1. 使用cv.imread()读取图像
    cv.imread()含有两个参数,第一个是图像的地址,地址出错会返回None;第二个如下:
    • cv.IMREAD_COLOR(-1): 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。
    • cv.IMREAD_GRAYSCALE(0,默认):以灰度模式加载图像
    • cv.IMREAD_UNCHANGED(1):加载图像,包括alpha通道
  2. 使用cv.imshow()显示图像
    cv.imshow第一个参数为显示名称;第二个参数为图片对象
    1. 此处还使用了cv.waitKey()键盘绑定函数,该函数等待任何键盘事件指定的毫秒。如果在这段时间内按下任何键,程序将继续运行。如果0被传递,它将无限期地等待一次敲击键。它也可以设置为检测特定的按键,waitkey函数的返回值(在按了按键的前提下)就是对应按键的ASCAII码,而且是区分大小写的。
    2. 以及cv.destroyAllWindows()函数关闭创建的所有窗口。如果要销毁任何特定的窗口,使用函数cv.destroyWindow()在其中传递确切的窗口名称作为参数。
    3. 代码示例:
    img = cv.imread('./picture/1.jpg', 1)
    cv.imshow('./picture/1.jpg', img)
    cv.waitKey(0)
    cv.destroyAllWindows()
    
  3. 使用cv.imwrite()保存图像
    第一个参数是文件地址;第二个参数是保存的图像
    img = cv.imread('./picture/1_read.jpg.jpg', 1)
    cv.imshow('./picture/1_read.jpg', img)
    k = cv.waitKey(0)
    if k == 27:                 # 等待ESC退出
       cv.destroyAllWindows()
    elif k == ord('s'):         # 等待关键字,保存和退出
       cv.imwrite('/picture/1_write.png', img)
       cv.destroyAllWindows()
    
  4. 使用Matplotlib显示和操作图像
    具体函数资源在:(http://matplotlib.org/api/pyplot_api.html)
    • 注意:OpenCV加载的彩色图像处于BGR模式。但是Matplotlib以RGB模式显示。因此,如果使用OpenCV读取彩色图像,则Matplotlib中将无法正确显示彩色图像。
    img = cv.imread('./picture/1_read.jpg', 0)
    plt.imshow(img, cmap='gray', interpolation='bicubic')
    plt.xticks([]), plt.yticks([])      # 隐藏xy轴的刻度值
    plt.show()
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值