Python - OpenCV中的GUI特性

本文介绍了如何使用Python的OpenCV库进行图像处理,包括使用cv.imread()加载图像,cv.imshow()显示图像,以及cv.imwrite()保存图像。详细讲解了不同读取模式,如彩色和灰度模式,并提到了cv.namedWindow()创建可调整大小的窗口。最后,还提及了使用Matplotlib进行图像处理的可能性。
摘要由CSDN通过智能技术生成

如何使用图像:加载图像 → 显示图像 → 保存图像

函数:cv.imread(), cv.imshow() , cv.imwrite()

1.cv.imread() 读取图像函数

retval=cv.imread(filename[, flags = IMREAD_COLOR )])
  • filename:图片文件的绝对路径或相对路径
  • flags: IMREAD_COLOR(默认) 图像读取模式

1.1 读取模式

  • cv.IMREAD_COLOR:1 加载一个彩色图像。图像的任何透明度都将被忽略。它是默认标志

  • cv.IMREAD_GRAYSCALE:0 加载图像在灰度模式

  • cv.IMREAD_UNCHANGED:-1 加载图像,包括阿尔法通道

    读取彩色图像

    import cv2
    import numpy as np
    img = cv2.imread("C:\\Users\\...\\Desktop\\cat.jpg", cv2.IMREAD_COLOR)
    cv2.imshow('cat-IMREAD_COLOR', img)
    

    img由三维矩阵构成;img[0][0] = [B,G,R] ,即使用[B,G,R] 来表示img[0][0]像素位置色彩,三通道
    IMAGE_COLOR三通道效果图
    读取灰度图像

    import cv2
    import numpy as np
    img2 = cv2.imread("C:\\Users\\...\\Desktop\\cat.jpg", cv2.IMREAD_GRAYSCALE)
    cv2.imshow('cat-IMREAD_GRAYSCALE', img2)
    

    img2由三维矩阵构成;img2[0][0] = 0-255的数值 ,即使用0-255的一个数值来表示img2[0][0]像素位置颜色,单通道
    IMREAD_GRAYSCALE单通道效果图

2.cv.imshow() 显示图像函数

# python
None	=	cv.imshow(	winname, mat	)
使用函数cv.imshow()在窗口中显示图像。窗口自动适应图像大小
第一个参数是一个字符串窗口名。
第二个参数是我们的图像。可以创建任意多的窗口,并使用不同的窗口名称

样例

cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()
waitkey()是一个键盘绑定函数。它的参数是以毫秒为单位的时间。该函数为任何键盘事件等待指定的毫秒。如果您在此时间内按下任何键,程序将继续。如果0被传递,它将无限期地等待击键。

destroyallwindows()简单地销毁我们创建的所有窗口。如果想销毁任何特定的窗口,可以使用函数cv.destroyWindow(),其中传递确切的窗口名作为参数。

有一种特殊情况,您可以已经创建一个窗口,稍后再将图像加载到其中。在这种情况下,您可以指定窗口是否可调整大小。这是通过函数cv.namedWindow()完成的。默认情况下,标志是css . window_autosize。但如果你指定的标志是cv。WINDOW_NORMAL,你可以调整窗口大小。

cv.namedWindow('image', cv.WINDOW_NORMAL)
cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()

3.cv.imwrite() 存储图像函数

使用函数cv .imwrite()保存映像
cv.imwrite('messigray.png',img)
第一个参数是文件名,
第二个参数是要保存的图像

使用Matplotlib

Matplotlib是一个用于Python的绘图库,它提供了各种各样的绘图方法。简单如何使用Matplotlib显示图像、缩放图像、保存等。

注意:OpenCV加载的彩色图像是BGR模式。但是Matplotlib以RGB模式显示。
因此,如果使用OpenCV读取图像,彩色图像将不能在Matplotlib中正确显示
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值