Closed Te1moFernandes closed 2 years ago
Boa noite professor @miguelriemoliveira , ao tentar cortar a imagem para a reconhecer mais facilmente, deparei-me com este erro acerca do cv2 no terminal:
` File "readroad.py", line 45, in
Overload resolution failed:
- Can't parse 'pts'. Sequence item with index 0 has a wrong type
- Can't parse 'pts'. Sequence item with index 0 has a wrong type
Ao fim de uma pesquisa encontrei soluções tais como meter em integral (int()) as parcelas do tuplo da imagem mas também não funciona, consegue ajudar?
O código vai segue-se em baixo:
`# read image image = cv2.imread("road.png") image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
print('This image is:', type(image), 'with dimensions:', image.shape)
height = image.shape[0]
width = image.shape[1]
region_of_interest_vertices = [
(0, height),
(width/2, height/2),
(width, height)
]
def region_of_interest(img, vertices):
mask = np.zeros_like(img)
channel_count = img.shape[2]
match_mask_color = (255,) * channel_count
cv2.fillPoly(mask, vertices, match_mask_color)
masked_image = cv2.bitwise_and(img, mask)
return masked_image
cropped_image = region_of_interest(image, np.array([region_of_interest_vertices, np.int32]))
plt.imshow(cropped_image)
plt.show()
`
https://www.youtube.com/watch?v=eLTLtUVuuy4 Guia fantástico!!
Resolvido.
Oi @Te1moFernandes ,
desculpe não ter tido tempo de ver antes. Ainda bem que está resolvido.
Abraço, Miguel
Sem problema professor, encontrei um guia e o erro tinha a ver com o método de Gauss (se não me engano no nome) que basicamente pensa apriori que ha mais do que um poligono na máscara mas como neste caso é apenas um, tive que meter mais uns parentes no tuplo (qualquer coisa assim :') )
Basicamente era um erro na linguagem de arrays e não no código em si.
@miguelriemoliveira
Criar um script python para, lendo uma imagem de estrada retirada do google do disco local, decidir para onde virar e mostrar esta decisão ao utilizador