Centrer un objet d'une image/ calculer ses coordonnées [Résolu]

Signaler
Messages postés
7
Date d'inscription
mardi 20 avril 2021
Statut
Membre
Dernière intervention
20 avril 2021
-
Messages postés
15638
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021
-
Bonjour,



Configuration: Windows / Firefox 87.0


Après moultes tentatives et recherches, je suis toujours dans le flou !
J'ai l'image suivante :


Mon but final serait de pouvoir créer une nouvelle image (ou modifier l'existante) avec la sorte de croix au centre de celle ci. Ou au moins de calculer la coordonnée de la croix par rapport au centre de l'image.

J'ai pour l'instant réussi à faire la première requête avec des images simples, un logo blanc sur un fond noir par exemple, mais il semblerait qu'il y ait trop de nuances de couleurs dans mon image pour que mes calculs soit corrects.

import cv2
import numpy as np

# Charger l'image en niveaux de gris et obtenir les coordonnées
image = cv2.imread('image.png', 0)
height, width = image.shape
x,y,w,h = cv2.boundingRect(image)

# Créer une image vierge et y enregistrer l'objet centré et rogné
mask = np.zeros(image.shape, dtype=np.uint8)
ROI = image[y:y+h, x:x+w]
x = width//2 - ROI.shape[0]//2
y = height//2 - ROI.shape[1]//2
mask[y:y+h, x:x+w] = ROI

cv2.imshow('ROI', ROI)
cv2.imshow('mask', mask)
cv2.waitKey()


Je vous remercie pour votre aide :)

1 réponse

Messages postés
15638
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021
855
bonjour,
peux-tu partager le fichier image?
au minimum, partager les valeurs de height, width, x,y,w,h (avant de créer l'image vierge).
Messages postés
7
Date d'inscription
mardi 20 avril 2021
Statut
Membre
Dernière intervention
20 avril 2021
>
Messages postés
15638
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021

C'est nickel aussi.

Je ne sais pas si tu as vu mon message juste au-dessus, si tu aurais une piste ou carrément une idée de programme ce serait génial :)

En tout cas encore merci
Messages postés
15638
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021
855 >
Messages postés
7
Date d'inscription
mardi 20 avril 2021
Statut
Membre
Dernière intervention
20 avril 2021

suggestion:
import tkinter
def pointeur(event):
    txt= "Clic détecté en X =" + str(event.x) +\
        ", Y =" + str(event.y)
    chaine.configure(text =txt)
    print(txt)
root=tkinter.Tk()
fen = tkinter.Frame(root)
fen.pack()
photo = tkinter.PhotoImage(file = "image.png")
cadre = tkinter.Label(fen, image = photo)
cadre.bind("<Button-1>", pointeur)
cadre.pack()
chaine = tkinter.Label(fen)
chaine.pack()
fen.mainloop()
Messages postés
7
Date d'inscription
mardi 20 avril 2021
Statut
Membre
Dernière intervention
20 avril 2021
>
Messages postés
15638
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021

C'est typiquement ça, merci pour le code j'étais en train d'en faire un bien plus massif et moins propre.
J'aimerai juste que les coordonnées (0,0) soit au centre de l'image et non en haut à gauche, est-ce possible?
Merci encore.
Messages postés
7
Date d'inscription
mardi 20 avril 2021
Statut
Membre
Dernière intervention
20 avril 2021
>
Messages postés
7
Date d'inscription
mardi 20 avril 2021
Statut
Membre
Dernière intervention
20 avril 2021

Finalement j'ai réussi, merci de ton aide :)
Messages postés
15638
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 mai 2021
855 >
Messages postés
7
Date d'inscription
mardi 20 avril 2021
Statut
Membre
Dernière intervention
20 avril 2021

parfait, peux-tu alors marquer la discussion comme résolue?