python - 在 Open cv 中为彩色图像应用蒙版
问题描述
我应该在下面的代码中进行哪些更改,以便如果我知道绿色的 HSV 值,我应该得到不包含绿色的图像片段作为我的输出?
我正在处理的图像是:源图像
import cv2
import matplotlib.pyplot as plt
import numpy as np
img = cv2.imread("sun.jpg")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv, (36, 25, 25), (70, 255,255)) ## mask of green (36,25,25) ~ (86, 255,255)
imask = mask>0 ## slice the green
green = np.zeros_like(img, np.uint8)
green[imask] = img[imask]
cv2.imshow('image ',green)
cv2.waitKey(0)
cv2.imwrite("green1.png", green) ##saving
实际输出:是唯一的绿色部分
预期输出:除了绿色部分
解决方案
你应该换行
green[imask] = img[imask]
和
green = img[!imask] # not of mask to get non-green regions in image
推荐阅读
- algorithm - 使用回溯解决唯一路径的快速算法
- shell - 有没有办法运行 shell 脚本,提示输入来自 Ansible playbook 的值?
- kubernetes - 在 GCP 上使用 k8s 加入主节点时出现问题
- excel - 如何从工作簿 A 中的 2 个单元格复制数据并复制到单元格中的工作簿 B 以及如何启动 for 循环直到最后一行/列
- python - 我想要一个 GET 方法发送到 Flask 视图,但我无法处理它。谁能给我一些关于我做错了什么的见解?
- java - 在休眠中将给定的日期时间转换为时间戳
- reactjs - 'history' PropType 已定义但从未使用过 propeslint(react/no-unused-prop-types) 这行代码嵌入的 eslint 错误是什么?
- windows - 以下 make 片段的含义 INSTALLSOURCE=$(subst /,\,$(DEST))
- android - 如何使用 java 客户端 SignalR 进行有保证的消息传递?
- d3.js - 如何使用 d3 调节 svg 路径命令 A(椭圆弧)值?