zl程序教程

您现在的位置是:首页 >  后端

当前栏目

opencv Image等操作在win下的坑

Opencv 操作 Image win
2023-09-27 14:25:31 时间

好久没有在win下写东西了。导致又一次踩到了坑里。

1. PIL库读图,转为numpy:np.array()

2. opencv读入的图像是BGR格式,转为RGB:img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

3. opencv保存时,路径不能是中文!!!否则不报错但是也保存不了!!!

4. 保存图片的路径:'D:/Face Recognition/CASIA-WebFace-aligned',注意是 /,\\也行,但是有个潜在的问题,利用os.path.join()后,路径会自动变成 \ 。这也不报错,但也保存不了图片!!!所以保存时要使用 / ,并且不要使用os.path.join()!!!

5. matpotlib.pyplot保存Image读入的图为jpg格式时会报错:RGBA不能存为RGB!  所以只能存为png格式。但是利用cv2.imwrite可以保存。

6. 读入图片时,要注意有的图像可能是1通道的灰度图。这时如果要训练的话,3通道和1通道无法构成批量来训练。解决方法:使用cv2读入,默认是3通道。如果利用PIL的Image,可以这样写:

img = Image.open(self.root+'/'+img_path).convert('RGB')

或者手动复制三个通道修改成3通道图像:

img = np.stack([img]*3, 2)

 

 

 

其他:

Convert RGBA PNG to RGB with PIL

Python PIL.Image.open() Examples  (里面是一些用到PIL库的一些项目代码,比较全面)