J'essaie de trouver les coordonnées de chaque coin d'un rectangle donné. Jusqu'ici j'ai été capable d'obtenir deux angles en utilisant la fonction de contours, mais quand je regarde dans tout le tableau de contour, il y a une abondance de points à passer au crible. Je suis à la recherche que pour les valeurs les plus extrêmes (max et min x et y) valeursTrouver les coordonnées des contours
import cv2
import numpy as np
#open image
img = cv2.imread('cnt-coords.jpg')
#convert to black and white
bw = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#threshold image
ret, thresh = cv2.threshold(bw,127,255,0)
#find contours
im2, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
#obtain the first 2 points of contours
cntx1 = contours[0][0]
cntx = contours[0][1]
#convert coords to points
pt1 = (cntx1[0][0],cntx1[0][1])
pt2 = (cntx[0][0],cntx[0][1])
#draw circles on coordinates
cv2.circle(img,pt1,5,(0,255,0),-1)
cv2.circle(img,pt2, 5, (0,255,0),-1)
#display the image
cv2.imshow('f',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
je passé au crible ce que contours
me revient et son un grand éventail de points, ce qui semble être tous les points le long de la diagonale de mon image. Est-il possible de simplifier les points que je reçois, en l'occurrence les coins de ce rectangle/parallélogramme?
Merci - en utilisant une longueur d'arc d'environ 10%, j'ai été capable de localiser les quatre coins de la forme parallélogramme/rectangle –