【问题标题】:How to fill the image outside a bounding window with some colour如何用某种颜色填充边界窗口外的图像
【发布时间】:2018-02-02 06:58:04
【问题描述】:

是否可以像我们在使用 opencv,python 的桶填充油漆中那样用某种颜色填充边界窗口外的图像

【问题讨论】:

  • 要求人们点击随机链接几乎是垃圾邮件发送者的行为。请改写你的问题。首先以文本形式解释问题。将图片链接进一步向下移动,作为附加信息。
  • 欢迎来到 Stack Overflow!请阅读how to ask a good questionwhat have you tried

标签: python-3.x image opencv


【解决方案1】:

您可以使用洪水填充来做到这一点。您首先需要一个蒙版来从图像中分割出矩形。

首先制作一个蒙版来分割矩形。我通过简单的灰色阈值做到了。一旦你有了蒙版,用图像填充 roi,其余的用你想要的颜色填充。

代码:

import cv2
import numpy as np 

img = cv2.imread("face.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

h,w =img.shape[:2]
mask = np.zeros((h+2, w+2), np.uint8)

ret,thresh2 = cv2.threshold(gray, 10,255,cv2.THRESH_BINARY_INV)
cv2.floodFill(thresh2, mask, (350,250), (255,255,0));

thresh2 = cv2.cvtColor(thresh2,cv2.COLOR_GRAY2RGB)


thresh2[np.where((thresh2 == [0,0,0]).all(axis = 2))] = [0,255,255]
thresh2[np.where((thresh2 == [255,255,255]).all(axis=2))] = img[np.where((thresh2 == [255,255,255]).all(axis=2))]

cv2.imshow("img", thresh2)
cv2.waitKey(0)
cv2.destroyAllWindows()

【讨论】:

  • 好吧,我试图只在边界框内进行一些操作,但这段代码实际上并不适用于所有图像,有没有办法只在边界框内进行阈值处理而不裁剪图像?? I.牛顿
  • 我没有裁剪图像。我做了阈值以获得矩形。制作面具后,您可以根据需要进行操作。它不适用于所有图像,因为您需要相应地调整 10 和 (350, 250 ) 值。如果您手动绘制矩形,那会使工作更容易。
  • 谢谢我想出了一种在边界框周围绘制矩形的方法 I.Newton,你给了一个很好的线索,..
【解决方案2】:
ALL CREDITS TO I.NEWTON orwhatever his actual name is..  ;)
     img = cv2.imread(f)
     size=img.shape
     dets1 = detector1(img)    
     for k1, d1 in enumerate(dets1):
         x1=d1.left()
         y1=d1.top()
         w1=d1.right()
         h1=d1.bottom()
         cv2.rectangle(img,(x1,y1),(w1,h1),(0,0,0),1)
         cv2.rectangle(img,(0,0),(x1,size[1]),(0,0,0),-1)
         cv2.rectangle(img,(0,0),(size[1],y1),(0,0,0),-1)
         cv2.rectangle(img,(size[1],0),(w1,size[0]),(0,0,0),-1)
         img=cv2.rectangle(img,(size[1],size[0]),(0,h1),(0,0,0),-1)
    cv2.imshow("img", thresh2)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

【讨论】:

  • dets1 是我使用 svm 和 dlib 的目标检测代码训练的目标检测器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
  • 1970-01-01
  • 2019-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-09
相关资源
最近更新 更多