灰度图像分割

0 投票
2 回答
1310 浏览
提问于 2025-04-18 18:10

我正在尝试对一张从实地测量生成的灰度图片进行分割,所以这张图片不是普通的三通道图片。

我试过这段代码:

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位图像)。

撰写回答