python - 使用 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 大小和类型相同的数组,也不是标量)
解决方案
该问题很可能与加载指定的图像路径有关。通常,我在访问文件系统时会使用以下类型的检查来粘贴我的代码:
img = cv2.imread('/path/that/might/change')
if img is None:
print("Error loading img")
sys.exit(-1)
我认为通常在从外部资源加载数据时执行这些断言是一个好主意,无论是通过 Internet 还是文件系统。指定图像的正确路径时,您的代码运行没有问题,而不是更改cv2.waitKey(5)
为cv2.waitKey()
,否则您的图像只会短暂闪烁打开。
推荐阅读
- oauth-2.0 - WSO2 Identity Server 5.7.0 Oauth/OpenId Connect 注销有关于会话状态的错误?
- node.js - 在 Heroku 上推送时,React 应用程序未连接到 Node.js 后端
- c - 如何在c中的函数中传递不同数量的参数
- r - 来自R中的合并回归的稳健聚集标准误差?
- coq - 在 Coq 中实现 Boruvka 算法
- python - Python 和模块化算术
- amazon-web-services - 亚马逊 S3 上传对象 LastModified 日期保持更改?
- django-rest-framework - 数据未传递到 DRF 中的嵌套序列化程序
- math - 找出没有两个相同元素彼此相邻的排列数
- ios - React Native:Appcircle CI 中的 iOS 存档构建失败