OpenCV 错误:(-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'CvtHelper'

The*_*ise 14 python opencv color-space

Traceback (most recent call last):
File "demo.py", line 132, in 
     `result = find_strawberry(image)`
File "demo.py", line 63, in find_strawberry
`image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)`
cv2.error: OpenCV(3.4.2) /Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/color.hpp:253: error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'CvtHelper'
Run Code Online (Sandbox Code Playgroud)

我个人在这个问题上花了很多时间,因此认为将其发布到 Stackoverflow 上是相关的。

问题取自:llSourcell/Object_Detection_demo_LIVE

The*_*ise 16

甚至我也有同样的问题,解决方案很简单。记住一件事,如果图像的 RGB 值在 0-255 的范围内,请确保这些值不是数据类型“float”。因为 OpenCV 仅在值范围为 0-1 时才考虑浮点数。如果它发现一个大于 1 的浮点值,它会剪掉该值,认为浮点数只存在于 0-1 之间。因此产生了这样的错误。因此,如果值为 0-255,则将数据类型转换为 uint8。

image = image.astype('uint8')
Run Code Online (Sandbox Code Playgroud)

检查此Kaggle 内核以了解更多信息