首页 > 解决方案 > 使用 OpenCV 消除颜色

问题描述

我正在尝试使用以下代码和 OpenCV 消除蓝色:

import cv2
import numpy as np

img=cv2.imread('//home/ze/Downloads/blue.jpg ')

lower = np.array([0,0,204], np.uint8)
upper = np.array([204,255,255], np.uint8)
mask = cv2.inRange(img, lower, upper)

res = cv2.bitwise_and(img, img, mask= mask)  

cv2.imshow('Result', res)

k=cv2.waitkey(5) & 0xFF

if k==27:
    cv2.destroyAllWindows()

但我收到此错误:

OpenCV 错误:inRange 中输入参数的大小不匹配(下边界既不是与 src 大小和类型相同的数组,也不是标量)

标签: pythonopencv

解决方案


该问题很可能与加载指定的图像路径有关。通常,我在访问文件系统时会使用以下类型的检查来粘贴我的代码:

img = cv2.imread('/path/that/might/change')
if img is None:
    print("Error loading img")
    sys.exit(-1)

我认为通常在从外部资源加载数据时执行这些断言是一个好主意,无论是通过 Internet 还是文件系统。指定图像的正确路径时,您的代码运行没有问题,而不是更改cv2.waitKey(5)cv2.waitKey(),否则您的图像只会短暂闪烁打开。


推荐阅读