【发布时间】:2021-05-05 09:19:45
【问题描述】:
我无法裁剪图像上的粉红色线条。理想情况下,我想裁剪整个粉色部分,如果包括蓝色就可以了。
我做了什么
import cv2
import numpy as np
from PIL import Image, ImageFilter
#convertes image to hsv and applies blur
img = cv2.imread("1501.jpg")
hsv = cv2.cvtColor(img, cv2.COLOR_RGB2RGB)
fin = cv2.GaussianBlur(hsv,(25,25),cv2.BORDER_DEFAULT)
#divided the image in half to see the target
na = np.array(fin)
orig = na.copy()
m = orig.shape[0]
n = orig.shape[1]/2
M = int(m)
N = int(n)
tiles = [orig[x:x+M,y:y+N] for x in range(0,orig.shape[0]) for y in range(0,orig.shape[1],N)]
variable = tiles[0]
Image.fromarray(variable).save('variable.jpg')
#extracts color from the target
hsv_lower = (300,2.2,71)
hsv_upper = (326,41,32.5)
mask = cv2.inRange(variable, hsv_lower, hsv_upper)
下一步该做什么 我不确定下一步该做什么,也不确定我是否一开始就捕捉到了粉红线。首选 Python3 解决方案。
【问题讨论】:
-
hsv = cv2.cvtColor(img, cv2.COLOR_RGB2RGB)?你不是说cv2.COLOR_BGR2HSV吗?另外,请注意color conversions 上的文档:H的值设置为[0 ... 180]的范围以用于常见的 8 位图像。您可能想看看 this earlier answer from me 作为使用 HSV/HLS 颜色空间的颜色阈值的起点。
标签: python opencv image-processing python-imaging-library crop