2 votes

Suppression de l'arrière-plan des photos de la galaxie en utilisant Python

Pouvez-vous me donner des conseils sur la façon de supprimer l'arrière-plan des images de galaxies en utilisant Python ? Je veux somehow detecter la galaxie et supprimer tout ce qui se trouve à l'extérieur.

Est-il possible de le faire avec OpenCV peut-être ?

Toutes les images ressemblent à ceci :

1voto

Ishara Madhawa Points 2506

Essayez ceci:

L'idée de base de cette solution est d'obtenir les contours de l'image après avoir effectué threshold() et de détecter le plus grand contour parmi les contours.

import cv2
image = cv2.imread("test.jpg", 1)
img = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU,img)
im2, contours, hier = cv2.findContours(img, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)

if len(contours) != 0:
    #trouver la plus grande zone
    c = max(contours, key = cv2.contourArea)
    x,y,w,h = cv2.boundingRect(c)
    cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),1)

cv2.imshow("Résultat", image)
cv2.waitKey(0)

OUTPUTS:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X