python黑白图像检测

python黑白图像检测,python,opencv,image-processing,computer-vision,analytics,Python,Opencv,Image Processing,Computer Vision,Analytics,我试图使用python语言中的OpenCV识别图像是黑白图像还是彩色图像。我已经创建了一个黑白图像使用MS油漆检查相同。即使图像是黑白的,它仍然具有除0和255之外的RGB值。 下面是我使用过的代码和图片。我得到的输出是彩色图像。 我检查了RGB值,它们的值不是0和255,我无法调试为什么,有人能帮我吗 img = cv2.imread('C:/Comp_vision/image_data/black_and_white.jpg') image_pixel =img.flatten() bn

我试图使用python语言中的OpenCV识别图像是黑白图像还是彩色图像。我已经创建了一个黑白图像使用MS油漆检查相同。即使图像是黑白的,它仍然具有除0和255之外的RGB值。 下面是我使用过的代码和图片。我得到的输出是彩色图像。 我检查了RGB值,它们的值不是0和255,我无法调试为什么,有人能帮我吗

img = cv2.imread('C:/Comp_vision/image_data/black_and_white.jpg')

image_pixel =img.flatten()

bnw_cnt = sum(np.where((image_pixel == 0) | (image_pixel == 255), 1, 0))

if np.vectorize(bnw_cnt) == np.vectorize(image_pixel):
    print("Black and white image")
else:
    print ("Color image")

当且仅当每个通道上的给定像素(x,y)值相等时,图像将具有黑白色

例如:

def检查灰色(img):
对于范围内的x(img.shape[0])
对于范围内的y(img.shape[1])
b、 g,r==img[x,y]
如果不是(b==g==r):
返回错误
返回真值

当且仅当每个通道上的给定像素(x,y)值相等时,图像将具有黑白颜色

例如:

def检查灰色(img):
对于范围内的x(img.shape[0])
对于范围内的y(img.shape[1])
b、 g,r==img[x,y]
如果不是(b==g==r):
返回错误
返回真值

禁用抗锯齿当您使用此特定图像进行测试时,还会下载其他图像。这些图像不是二进制图像(只有两种颜色黑色和白色),而是灰度图像。您可以计算图像的直方图。如果说99%的颜色接近黑色(比如245),那么你可以说,出于你的目的,图像是b/wi检查的,如果它们在某个特定的范围内,那么它们是非常分散的。因此,请发布一些图像,这样我们就不必猜测了…当你绘制时禁用抗锯齿我使用了这个特定的图像进行测试,还有其他下载的图像。这些图像不是二进制的(只有两种颜色的黑色和白色),而是灰度的。您可以计算图像的直方图。如果说99%的颜色接近黑色(比如245),那么你可以说,出于你的目的,图像是b/wi检查的,如果它们在某个特定范围内,那么它们是非常分散的。因此,请发布一些图像,这样我们就不必猜测了……这适用于灰色图像,我所关注的是黑白图像。添加条件elif b!=255或b!=0:return False此功能适用于灰色图像,我要查看的是黑白图像。添加条件elif b!=255或b!=0:返回False