有关opencv 和PIL库导入图像格式问题

有关opencv 和PIL库导入图像格式问题

import numpy as np
import cv2


from PIL import Image

img = Image.open(r'C:\Users\A.jpg')
img1 = np.array(img)
print(type(img))
print(type(img1))
x = np.where(img1>100,1,0)

label = cv2.imread(r'C:\Users\A.jpg',flags=0)
label1 = np.array(label)
print(type(label))
print(type(label1))

x = np.where(label1>100,1,0)

由于在标记label时,需要把比如灰度小于T的区域当做是正例,而灰度大于T的区域标记为反例,所以想用label[label <= T] = 0,label[label <= T] = 0.像halcon这样直接写很方便。但是现在可能是我Keras版本的问题,导致报错’>=’ not supported between instances of ‘NoneType’ and ‘int’。好尴尬!!!这里要说明一下,我是用cv2.imread 读进来的图像label。
接下来,在网上查阅了一下,说是需要将读入的图像转成numpy.ndarray。然后用np.where()来条件筛选。所以,导入numpy包。然后x = np.array(label),
y = np.where(x<T,0,1),发现仍然报错。。。。可是网上别人为什么可以??
再次尝试,from PIL import Image
img = Image.open(r’C:\Users\A.jpg’)
img1 = np.array(img)
x = np.where(img1<T,0,1)
结果成了????!!!!按理来说 用np.array()也可以 让label图像转为numpy.ndarray类型,但是cv读进来的图像,转成numpy.ndarray,np.where()也还是报错。。。
目前还没找到原因,找到后再来补上。目前的方案就是用PIL库来读入图像。


One hour later
找到了原因。。。
好久不用opencv,突然意识到CV2读入的图像的路径不能包含中文,也就是 有关opencv 和PIL库导入图像 后np.array()后结果都是numpy.ndarray类型。所以用哪个都可以。Anyway,my bad…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值