首页 > 解决方案 > 在 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

实际输出:是唯一的绿色部分
预期输出:除了绿色部分

标签: pythonopencv

解决方案


你应该换行

green[imask] = img[imask]

green = img[!imask] # not of mask to get non-green regions in image

推荐阅读