#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)