使用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)

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐