【发布时间】:2018-10-17 22:14:18
【问题描述】:
就像我将原始输入转换为 HSV 颜色空间图像并应用 INRANGE 函数并找到了绿色和蓝色线,现在我想摆脱它们,我希望图像在输出中看起来像......如何我现在应该摆脱线条并用背景颜色替换它们吗??
代码片段:
import cv2 as cv
import numpy as np
img= cv.imread('C:\input.png',1)
hsv=cv.cvtColor(img,cv.COLOR_BGR2HSV)
lower_green = np.array([30,70,20])
upper_green = np.array([70,255,255])
lower_blue = np.array([95, 110, 20])
upper_blue = np.array([135, 255, 255])
mask = cv.inRange(hsv, lower_green , upper_blue)
res = cv.bitwise_and(img,img, mask= mask)
cv.imwrite("out2.jpg", res)
【问题讨论】:
-
作为How to detect colored patches in an image using OpenCV,我在
S(hsv)上执行cv2.threshold来检测颜色。然后cv.inpaint到recover。这是我的结果i.stack.imgur.com/mung9.jpg。需要更好的恢复方法。 -
@Silencer....你能用我的代码指导我更多吗,因为我的 hsv 输出不是你的,所以你能告诉我颜色范围吗??? && 我该如何设置更好的恢复选项??
-
我认为最好使用
inpaint来达到这个目的。只需使用您已有的蒙版作为 inpaintMask(也许扩张它会产生更好的效果)。 -
@silencer 你是如何让 canvas 和 canvas2 如此精确和正确的......
标签: python-3.x opencv image-processing computer-vision opencv3.1