我试图分割由现场测量产生的灰度图像,这就是为什么它不是传统的3通道图像。
我尝试过这段代码:
import cv2 #this is the openCV library
import numpy as np
# some code to generate img
ret,thresh = cv2.threshold(img ,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
它吐出了这个错误:
cv2.error: ..\..\..\modules\imgproc\src\thresh.cpp:719: error: (-215) src.type() == CV_8UC1 in function cv::threshold
我不知道如何解决这个问题,因为使用似乎非常简单,所以任何想法都是受欢迎的。
答案 0 :(得分:3)
错误是由CV_Assert( src.type() == CV_8UC1 );
中的以下断言语句thresh.cpp
引起的,这意味着您的输入图像不是CV_8UC1
类型。
因此,请确保生成的输入图像img
实际上是CV_8UC1
(一个通道的8位图像)。
答案 1 :(得分:0)
所以问题确实是图像类型,因为它包含需要将其标准化为0~255的双值。
在我的情况下,1000是可能的最大值
img = cv2.convertScaleAbs(img / 1000.0 * 255)
这对我有用。