Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 对灰度图像应用自适应阈值_Python 2.7_Image Processing_Opencv3.0_Adaptive Threshold - Fatal编程技术网

Python 2.7 对灰度图像应用自适应阈值

Python 2.7 对灰度图像应用自适应阈值,python-2.7,image-processing,opencv3.0,adaptive-threshold,Python 2.7,Image Processing,Opencv3.0,Adaptive Threshold,我有一个png图像,它是灰度“test.png”。我需要将自适应阈值应用于此图像。我正在使用OpenCV image = cv2.imread('test_big.png') im = cv2.adaptiveThreshold(image, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2) 我无法应用自适应阈值,因为图像不是灰度的。 所以我试着将图像解读为灰度: image = cv2.imread('tes

我有一个png图像,它是灰度“test.png”。我需要将自适应阈值应用于此图像。我正在使用OpenCV

image = cv2.imread('test_big.png')
im = cv2.adaptiveThreshold(image, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
我无法应用自适应阈值,因为图像不是灰度的。 所以我试着将图像解读为灰度:

image = cv2.imread('test_big.png',1)

现在我可以应用自适应阈值,但输出将是蓝色和红色图像,而不是黑白图像。有人能帮忙吗?

第二个代码段有问题:

image = cv2.imread('test_big.png',1)
尽管您已经说过
test_big.png
是灰度图像,但您已经将其声明为具有三个通道的彩色图像(RGB)

因此,您必须将代码更改为

image = cv2.imread('test_big.png', 0)
  • 0->灰度图像
  • 1->彩色图像
您也可以尝试:

cv2.imread('test_big.png',cv2.imread_GRAYSCALE)


底线是:尽管正在读取的图像是灰度图像,但在明确指定之前,系统不会识别它。在您的情况下,您的图像是灰度图像,但由于您将其声明为彩色图像,因此它认为该图像具有三个通道(RGB),因此随后的自适应阈值函数未执行。

故障在于第二个代码段:

image = cv2.imread('test_big.png',1)
尽管您已经说过
test_big.png
是灰度图像,但您已经将其声明为具有三个通道的彩色图像(RGB)

因此,您必须将代码更改为

image = cv2.imread('test_big.png', 0)
  • 0->灰度图像
  • 1->彩色图像
您也可以尝试:

cv2.imread('test_big.png',cv2.imread_GRAYSCALE)

底线是:尽管正在读取的图像是灰度图像,但在明确指定之前,系统不会识别它。在您的例子中,您的图像是灰度图像,但由于您将其声明为彩色图像,因此它认为该图像具有三个通道(RGB),因此随后的自适应阈值函数没有执行。

cv2.imread('test\u big.png',cv2.imread\u grayscale)
将更具可读性和自我记录。
cv2.imread('test_big.png',cv2.IMREAD_GRAYSCALE)
将更具可读性和自我记录能力。