Как создать двоичную маску из значений ограничивающей рамки из текстового файла с помощью python

#python #image-processing #annotations #yolo #opencv-python

Вопрос:

Я хочу создать двоичную маску из значения ограничивающего поля в текстовом формате Yolo. Как я могу это сделать? Я делаю следующий код, пожалуйста, если кто — нибудь знает об этом, это мой текстовый файл с меткой класса и координатами ограничивающей рамки

 0 0.754792 0.063983 0.000833 0.002157
0 0.756042 0.064162 0.000833 0.001797
0 0.756354 0.068835 0.001042 0.001797
0 0.753229 0.068116 0.001458 0.003235
 
 txt_file = open('/content/dataset/April 2019.txt', "r")
lines = txt_file.read().splitlines()  
img = cv2.imread('/content/dataset/April 2019.jpg') 
for idx, line in enumerate(lines):
  value = line.split()
  x=y=w=h=cls= None
  cls = value[0]
  x = float(value[1])
  y = float(value[2])
  w = float(value[3])
  h = float(value[4])
  x=round(x)
  y=round(y)
  w=round(w)
  h=round(h)
  print(x,y,w,h)
  mask = np.zeros((img.shape[0],img.shape[1]),dtype=np.uint8) # initialize mask
  mask[x:y,w:h] = 255 # fill with white pixels
cv2.imwrite('image1_mask.png',mask)