python的image读取的图片是什么类型的-opencv python 读取图像/显示图像/保存图像...

以前也用过opencv, 不过都是按需使用, 掌握的知识很零散, 这次希望能够系统学习opencv-python

本文直接从Gui Features开始.

1 读取图片

使用cv2.imread()函数读取图像.

cv2.imread(filename[, flags])

filename 图片的路径, 图片应该在工作目录下, 不然应给出图片完整路径

flags 指定图像读取方式:

cv2.IMREAD_COLOR : 加载彩色图像. 图像的任何透明度都将被忽略.(默认)

cv2.IMREAD_GRAYSCALE : 以灰度模式加载图像.

cv2.IMREAD_UNCHANGED : 加载包含Alpha通道的图像

Note : 可以使用1,0,-1 代替表示上述三种图像读取方式

代码 :

import cv2

img = cv2.imread('E:/pyproject/haha.jpg',1)

Note :

如果缺少文件,权限不当,格式不受支持或无效,当print(图片)时,将返回None.

该函数通过内容而不是文件扩展名来决定图像类型.

图像数据将以B,G,R的顺序存储.

2 显示图片

使用cv2.imshow()函数读取图像.

cv2.imshow(winname, mat)

winname 显示窗口的名字

mat 要显示的图像

cv2.namedWindow(winname[, flags])

winname 显示窗口的名字

flags 显示窗口的标志:

cv2.WINDOW_AUTOSIZE : 根据显示图像自动调整窗口,不能手动更改窗口大小(默认)

cv2.WINDOW_NORMAL : 可以调整窗口大小

……

cv2.waitKey([, delay]) 一个绑定键盘功能。

delay 以毫秒为单位延迟。 0是指"永远”的特殊值。

cv2.destroyAllWindows()

简单地破坏我们创建的所有窗口。如果想销毁任何特定的窗口,在其中传递确切的窗口名称作为参数。

Note :

如果显示图像窗口在imshow()未提前创建,系统将默认cv2.WINDOW_AUTOSIZE创建窗口

代码一 :

cv2.imshow("showing",img)

cv2.waitKey(0)

cv2.destroyAllWindows()

代码二 :

cv2.namedWindow('showing', cv2.WINDOW_NORMAL)

cv2.imshow("showing",img)

cv2.waitKey(0)

cv2.destroyAllWindows()

bVbcjOq?w=497&h=370

3 保存图片

cv2.imwrite(filename, img[, params])

filename 图像名称

img 保存的图像

params 对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第 三个参数表示的是压缩级别。默认为3.

代码 :

cv2.imwrite('E:/pyproject/1.jpg',img, [int( cv2.IMWRITE_JPEG_QUALITY), 95])

bVbcjOa?w=749&h=131

应用:

加载一幅灰度图像,显示它,如果按's'则保存图像并退出,如果按ESC键直接退出。

import cv2

img = cv2.imread('E:/pyproject/haha.jpg',0)

cv2.imshow('image',img)

k = cv2.waitKey(0)& 0xFF

if k == 27: # wait for ESC key to exit

cv2.destroyAllWindows()

elif k == ord('s'): # wait for 's' key to save and exit

cv2.imwrite('messigray.png',img)

cv2.destroyAllWindows()

4 使用 Matplotlib

使用Matplotlib显示图像。 你可以放大图像,使用Matplotlib保存等。

import cv2

from matplotlib import pyplot as plt

img = cv2.imread('E:/pyproject/haha.jpg',0)

plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')

plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis

plt.show()

bVbcjNF?w=656&h=552

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值