我遵循了有关基于颜色分割的图像模糊指南:https://realpython.com/python-opencv-color-spaces/
但是我很难让它仅模糊原始图像中的尼莫。
到目前为止,我还没有遵循指南:
import matplotlib.pyplot as plt
import cv2
nemo = cv2.imread('nemo.png')
nemo = cv2.cvtColor(nemo, cv2.COLOR_BGR2RGB)
hsv_nemo = cv2.cvtColor(nemo, cv2.COLOR_RGB2HSV)
light_orange = (1, 190, 200)
dark_orange = (18, 255, 255)
light_white = (0, 0, 200)
dark_white = (145, 60, 255)
mask = cv2.inRange(hsv_nemo, light_orange, dark_orange)
mask_white = cv2.inRange(hsv_nemo, light_white, dark_white)
final_mask = mask + mask_white
final_result = cv2.bitwise_and(nemo, nemo, mask=final_mask)
blur = cv2.blur(final_result, (15, 15), 0)
我已绘制出1)nemo
,2)final_mask
和3)blur
进行比较:Image Result
我是否有办法使原始照片中的尼莫模糊,使其看起来像这样:Blurred Original Photo
目前,它只模糊蒙版图像中的尼莫。
我认为我需要为此获得投资回报率,但是如何在蒙版和从原始照片中获得尼莫的坐标/投资回报率之间建立关系?谢谢!
答案 0 :(得分:1)
如果您只想在蒙版为真的情况下模糊图像,则应该可以使用这种方法
blur = cv2.blur(nemo,(15,15),0)
out = nemo.copy()
out[mask>0] = blur[mask>0]
但是,您可能要更改蒙版的生成方式,因为当前它只会使鱼的橙色和白色部分模糊。