cv2.imread解决中文路径
时间: 2023-11-24 13:49:50 浏览: 170
cv2.imread无法读取含有中文的文件路径,但可以通过以下方法解决这个问题:
1.导入cv2和numpy库。
2.定义一个函数cv_imread(filePath),该函数使用np.fromfile()读取文件并使用cv2.imdecode()解码图像。
3.在主函数中调用cv_imread()函数并传入文件路径,然后使用cv2.imshow()显示图像。
4.使用cv2.waitKey()等待用户按下键盘上的任意键。
5.使用cv2.imencode()将图像编码为JPEG格式并使用tofile()保存到指定路径。
代码如下:
```python
import cv2
import numpy as np
def cv_imread(filePath):
cv_img = cv2.imdecode(np.fromfile(filePath, dtype=np.uint8), -1)
return cv_img
if __name__ == '__main__':
path = 'E:/images/百合/百合1.jpg'
img = cv_imread(path)
cv2.namedWindow('lena', cv2.WINDOW_AUTOSIZE)
cv2.imshow('lena', img)
k = cv2.waitKey(0)
cv2.imencode('.jpg', img)[1].tofile('百合.jpg')
```
相关问题
cv2.imread绝对路径
在cv2.imread函数中,可以使用图像文件的绝对路径来读取图像。具体操作步骤如下:
1. 在Python脚本中导入OpenCV库:`import cv2`
2. 使用cv2.imread函数读取图像文件,并将图像数据存储在变量img中,例如:
```
img = cv2.imread('/path/to/image.jpg')
```
其中,`/path/to/image.jpg`为图像文件的绝对路径。
3. 可以对读取的图像数据进行处理和显示等操作,例如:
```
# 显示读取的图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这样就可以读取指定路径下的图像文件,并对其进行处理和显示了。
python中 cv2.imread()函数与imread区别
在Python中,cv2.imread()和imread()函数都可以用于读取图像文件,但是它们之间有一些区别。
cv2.imread()函数是OpenCV中读取图像文件的函数,它可以读取多种格式的图像文件,包括BMP、JPEG、JPG、JPE、JP2、PNG、PBM、PGM、PPM、SR、RAS、TIFF、TIF等。cv2.imread()函数返回的是一个numpy数组,表示读取的图像。
imread()函数是Python Imaging Library(PIL)中读取图像文件的函数,它可以读取多种格式的图像文件,包括BMP、DIB、EPS、GIF、IM、JPEG、MSP、PCX、PNG、PPM、SPIDER、TGA、TIFF、WebP等。imread()函数返回的是一个PIL图像对象,表示读取的图像。
因此,如果你需要使用OpenCV中的其他函数对图像进行处理,建议使用cv2.imread()函数读取图像文件。如果你需要使用PIL中的其他函数对图像进行处理,建议使用imread()函数读取图像文件。
另外,cv2.imread()函数在读取中文路径的图像文件时可能会出现报错,解决方法是先使用np.fromfile()函数读取图像文件,然后再使用cv2.imdecode()函数解码。而imread()函数则没有这个问题。
<<相关问题>>:
1. 如何使用OpenCV对图像进行处理?
2. Python Imaging Library(PIL)中还有哪些常用的图像处理函数?
3. 如何将OpenCV中的图像转换为PIL图像对象?
阅读全文