我正在尝试分割从现场测量生成的灰度图像,这就是为什么它不是传统的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我不知道如何解决这个问题,因为它的用法似乎非常简单,所以欢迎任何想法。
发布于 2014-08-22 23:12:55
该错误是由于thresh.cpp中的以下assert语句CV_Assert( src.type() == CV_8UC1 );造成的,这意味着您的输入图像不是CV_8UC1类型。
因此,请确保生成的输入图像img实际上是CV_8UC1 (单通道8位图像)。
发布于 2014-08-28 17:24:05
因此,问题确实出在图像类型上,因为它包含需要归一化为0~ 255的双精度值。
在我的例子中,1000是可能的最大值
img = cv2.convertScaleAbs(img / 1000.0 * 255)这对我很有效。
https://stackoverflow.com/questions/25447073
复制相似问题