python - 如何输出仅包含指定颜色范围的图像?
问题描述
import cv2
import numpy as np
img = cv2.imread("minimap_example.png")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) #hsv image
lower_purple = np.array([154,135,160])
upper_purple = np.array([167,90,235])
mask = cv2.inRange(hsv, lower_purple, upper_purple)
lane = cv2.bitwise_and(img, img, mask=mask)
cv2.imwrite("laneOnly.png", lane)
如何解决此错误?
解决方案
你做错了两件事:
- 您正在使用 RGB 范围/值,但您正在将图像转换为 HSV。为简单起见,将其保留为 RGB(即使 HSV 是正确的方法)。
- 您以 RGB 顺序表示它们,但图像是 BGR,因此请切换值的顺序。此外,使范围更宽一些......否则你什么也得不到。
我建议你做这样的事情:
import cv2
img = cv2.imread("minimap_example.png")
lower_purple = (100, 45, 120) # you might want to refine these
upper_purple = (260, 105, 200) # you might want to refine these
mask = cv2.inRange(img, lower_purple, upper_purple)
lane = cv2.bitwise_and(img, img, mask=mask)
cv2.imwrite("laneOnly.png", lane)
推荐阅读
- snowflake-cloud-data-platform - 雪花更改列以具有默认值
- maven - “mvn verify”与“mvn test”有什么区别?
- reactjs - 使用 shopify 验证外部 create-react-app 自定义应用程序
- javascript - 在 Angular 中使用真实路径:找不到模块
- javascript - 在不打开窗口的情况下加载页面
- typescript - 图像源(远程 URL 或本地文件资源)
- python - 如何使用 pandas / geopandas 增加我的地块的箱数?
- android - 在 WebView 和 HTTP 请求之间共享 cookie
- django-rest-framework - Djangorestframework,我如何使用带有自定义字段的序列化程序,我想为创建方法传递这些字段?
- java - 收到此错误没有找到类 org.json.JSONObject 的序列化程序,也没有发现用于创建 BeanSerializer 的属性