Удаление фона из фотографий галактики с помощью Python - PullRequest
0 голосов
/ 11 декабря 2018

Не могли бы вы дать мне подсказку о том, как удалить фон из изображений галактики с помощью Python?Я хочу как-то обнаружить галактику и удалить все, что находится за ее пределами.

Есть ли шанс сделать это с OpenCV, может быть?

Все изображения выглядят так:

image

1 Ответ

0 голосов
/ 11 декабря 2018

Попробуйте:

Основная идея этого решения - получить контуры изображения после выполнения threshold() и определить самый большой контур среди контуров.

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:
    #find the biggest area
    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("Result", image)
cv2.waitKey(0)

ВЫХОДЫ:

image image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...