灰度图像分割
我正在尝试对一张从实地测量生成的灰度图片进行分割,所以这张图片不是普通的三通道图片。
我试过这段代码:
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
我不知道该怎么解决这个问题,因为使用起来看起来很简单,所以任何建议都很欢迎。
2 个回答
0
所以问题确实出在图片的类型上,因为它里面有一些需要调整的数值,这些数值需要被规范化到0到255之间。
在我的情况下,1000是可能的最大值。
img = cv2.convertScaleAbs(img / 1000.0 * 255)
这样做对我有效。
3
这个错误是因为在 thresh.cpp
文件中有一个检查语句 CV_Assert( src.type() == CV_8UC1 );
,这表示你的输入图像不是 CV_8UC1
类型。
所以要确保你生成的输入图像 img
确实是 CV_8UC1
类型(也就是一个单通道的8位图像)。