cv2.imread()
使用opencv和caffe的伙伴们,可能会有一个疑问,那就是对于同时读取图片的cv2.imread()和caffe.io.loadimage两个函数,有什么差别?
1、cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255,通道格式为(W,H,C)
2、caffe.io.load_image()读进来是RGB格式和 0~1(float)
因此,cv2.imread()读取的数据,需要进过转换后,才和caffe.io.load_image()相同,例如:
- image = caffe.io.load_image(caffe_root + 'examples/images/cat.jpg')
- image1=cv2.imread(caffe_root + 'examples/images/cat.jpg')
- image1=cv2.cvtColor(image1,cv2.COLOR_BGR2RGB)
- image1=image1/255.
所以在进行特征提取之前要在transformer中设置transformer.set_raw_scale('data',255)(缩放至0~255)
以及transformer.set_channel_swap('data',(2,1,0)(将RGB变换到BGR)。
调用caffe model进行特征提取分类时,要注意区分image用何种方法读进来。
作者:柒月
Q群 :2122210(嵌入式/机器学习)