cv2.error:opencv(3.4.2) /tmp/build/ error (-251:Assertion failed) VScn::contains(scn)

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值