cv2.imread()和matplotlib.image.imread()读取图片的一些区别,python,中文路径

1.
cv2.imread()和matplotlib.image.imread()
除了读取出来的rgb的顺序不一样,对于读取图片的类型要求也不一样,
example:
    将.jpg改为.png,后者读取就有问题,而前者就顺利的读取出来了
而且cv2.imread()不能有中文路径,否则读取不出来,一般opencv库都不允许中文路径

    但是可以这样修改,就可以得到可以识别中文路径的读取:

 

#cv2识别中文路径
def cv2_imread(img_path):
    cv_img=cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), -1)
    return cv_img
img_y = cv2_imread('E:/哈哈/' + str(number) + '.jpg')
#这个是存储到带有中文路径的文件里面,其中有图像质量的模糊度
cv2.imencode('.jpg', img,[int(cv2.IMWRITE_JPEG_QUALITY),
 random.uniform(30, 50)])[1].tofile("E:/哈哈/" 
+ str(xuhao) + ".jpg")
 

对于cv2读取的图像的形式是数组,不同的读取函数,读取到的图像的形式是不一样的,所以可以多次进行不同的读取方式,来进行不同的操作

 

2.

 

    scipy.misc.imread()读出来的为rgb,而且可以使用中文路径

    (cv2.imread()读出来的图片是BGR)

    scipy.misc.imsave(),直接进行保存就可以。但是有一点要注意,它只能保存uint8类型的数据,所以有时候就需要对他的类型进行声明。还有一些别的函数,有时候也会这样的。uint8的取值范围是0-255,所以注意越界问题

 

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cv2.imread和iplt.imsave函数是Python常用的图像处理函数,具体介绍如下: 1. cv2.imread函数 cv2.imread函数是OpenCV读取图像的函数,可以读取多种格式的图像文件,例如bmp、jpg、png等。该函数的语法格式如下: ```python cv2.imread(filename, flags) ``` 其,filename表示要读取的图像文件名,flags表示读取方式,常用的读取方式有以下三种: - cv2.IMREAD_COLOR:读入一副彩色图像,忽略alpha通道。 - cv2.IMREAD_GRAYSCALE:以灰度模式读入图像。 - cv2.IMREAD_UNCHANGED:读入一幅图像,并包括其alpha通道。 示例代码: ```python import cv2 # 读取一张彩色图像 img = cv2.imread('test.jpg', cv2.IMREAD_COLOR) # 显示图像 cv2.imshow('image', img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 2. plt.imsave函数 plt.imsave函数是Matplotlib保存图像的函数,可以将图像保存为多种格式的文件,例如png、jpg、pdf等。该函数的语法格式如下: ```python plt.imsave(fname, arr, **kwargs) ``` 其,fname表示要保存的文件名,arr表示要保存的图像数组,kwargs表示可选参数,例如dpi、format等。 示例代码: ```python import matplotlib.pyplot as plt import numpy as np # 创建一张图像 img = np.zeros((256, 256, 3), dtype=np.uint8) img[:, :, 0] = np.arange(256) img[:, :, 1] = np.arange(256) img[:, :, 2] = np.arange(256) # 显示图像 plt.imshow(img) plt.show() # 保存图像 plt.imsave('test.png', img) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值