使用cv2将rgb转hcv遇到该问题
原始错误代码:
img = np.zeros([ct_array_crop.shape[1], ct_array_crop.shape[2], 3])
img_slice = ct_array_crop[0]
img[:,:,0], img[:,:,1], img[:,:,2] = img_slice, img_slice, img_slice
img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cv2所以博客都说是路径错了,问题是我这次是直接处理array,完全没有使用路径。
咋回事儿呢?小老弟?
原来是cv2要处理的img数据数值不对
他要数值[0, 255]的uint8 类型,且记得channel在最后一维。
改成下面代码即可:
img = np.zeros([ct_array_crop.shape[1], ct_array_crop.shape[2], 3], np.uint8) # array定义为uint8
img_slice = ct_array_crop[ch]
img_slice = (img_slice - img_slice.min())/(img_slice.max() - img_slice.min()) * 255 # 数据转为[0,255]
img[:,:,0], img[:,:,1], img[:,:,2] = img_slice, img_slice, img_slice
img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)