Мне нужна помощь, пожалуйста, я разбираю файл xml, чтобы получить координаты (x, y), и с этой координатой x, y мне нужно нарисовать контур на каком-то изображении, проблема в том, когда я использую полилинию функция не работает вывод:
((302.6215607602997, 166.6285651861381), (317.14038591056607, 156.62670786039905), (328.11016491298955, 151.4644589180821), (337.6280614003864, 149.04465472637105), (350.0497229178365, 150.17389668250289), (363.9232669503133, 149.68993584416066), (373.4411634377101, 153.40030227145095), (379.7326543361589, 159.5304728904523), (385.54018439626543, 171.30685329011283), (389.0892305441083, 184.53511620479998), (389.89583194134536, 195.50489520722346), (390.3797927796876, 207.44259588633133), (385.86282495516025, 218.89633572709704), (378.7647326594745, 226.63970914057245), (367.794953657051, 232.60855948012642), (352.630847388995, 233.89912171570563), (340.85446698933447, 230.83403640620494), (329.7233677074636, 225.8331077433354), (318.2696278666979, 218.25105460930743), (311.4941761299069, 208.5718378424632), (305.84796634924777, 199.21526163451375), (302.7828810397471, 188.24548263209027), (300.52439712748344, 179.53418754193044))
Traceback (most recent call last):
File "C:\Users\Pc\Desktop\parser un fichier xml\pars4.py", line 54, in <module>
result = main('1.631791322.58809740.14.834982.40440.3641459051.955.6373933.1920.xml')
File "C:\Users\Pc\Desktop\parser un fichier xml\pars4.py", line 32, in main
img=cv2.polylines(image, pts, 1, (255,255,255))
TypeError: pts data type = 19 is not supported
код:
import xml.dom.minidom
import cv2
import numpy as np
import matplotlib.pyplot as plt
from numpy.polynomial import polynomial
image = cv2.imread('1.631791322.58809740.14.834982.40440.3641459051.955.6373933.1920.jpeg')
cv2.imshow("image",image)
cv2.waitKey()
#recuperation de (x,y)d'un fichier xml
def main(file):
doc = xml.dom.minidom.parse(file)
coordX = doc.getElementsByTagName("x")
coordY = doc.getElementsByTagName("y")
d = []
for atr_x, atr_y in zip(coordX, coordY):
x = atr_x.getAttribute('value')
y = atr_y.getAttribute('value')
#print("x", x, "y", y)
d.append(x)
d.append(y)
a = map(float, d)
print(tuple(zip(a, a)))
type(a)
pts = np.array([d])
pts = pts.reshape((-1,1,2))
img=cv2.polylines(image, pts, 1, (255,255,255))
cv2.imshow("contour",img)
cv2.waitkey()
result = main('1.631791322.58809740.14.834982.40440.3641459051.955.6373933.1920.xml')
#img=cv2.polylines(image, np.float64([pts]), 1, (255,255,255))
print(result)
код xml:
<?xml version="1.0" ?>
<TwoDimensionSpatialCoordinate>
<coordinateIndex value="0"/>
<x value="302.6215607602997"/>
<y value="166.6285651861381"/>
<coordinateIndex value="1"/>
<x value="3.6215607602997"/>
<y value="1.6285651861381"/>
</TwoDimensionSpatialCoordinate>