Как удалить звезды и другие объекты с изображения, подходящего для галактики, с помощью Matlab?

#matlab #fits

#matlab #подходит

Вопрос:

У меня есть следующее изображение в формате fits. Я хочу удалить все звезды и другие более мелкие точки с этого изображения с помощью matlab.введите описание изображения здесь

Я выполнил следующие операции matlab, чтобы удалить в нем звездочки.

 I = imread('NGC_0253.jpg');
if size(I,3)==3
   I=rgb2gray(I);
end
K = imcomplement(I);
L = I-K;
M = medfilt2(L);
imshow(M)
 

Я получаю изображение, подобное этому:введите описание изображения здесь

Я также пытаюсь выполнить следующее:

 I = imread('NGC_0253.jpg');
if size(I,3)==3
   I=rgb2gray(I);
end
K = imcomplement(I);
L = I-K;
M = bwareaopen(L,1000);
N = medfilt2(M);
imshow(N)
 

но это также не удовлетворяет меня:введите описание изображения здесь

Что не является моей целью. Моя цель состоит в том, чтобы удалить все звезды с изображения.

Итак, что я должен сделать, чтобы удалить все звезды, оставив галактику неповрежденной с изображения?

Комментарии:

1. Просто сообщаю вам: это очень хороший вопрос в SO, спасибо, что приложили усилия, чтобы правильно задать вопрос и показать, что вы пробовали.

Ответ №1:

Используя bwareaopen , я получаю хороший результат. (Я использую ваше второе изображение в качестве входных данных, чтобы вы могли сохранить первую часть своего кода)

 I = imread('NGC_0253.jpg');
I = im2bw(I,0.5); %the second parameter correspond to the threshold ∈ [0-1]
I = ~bwareaopen(~I,400); %where 400 = the minimal number of connected pixel needed to not be removed.

imshow(I)
 

ВХОДНЫЕ ДАННЫЕ:

введите описание изображения здесь

ВЫВОД:

введите описание изображения здесь

Улучшение:

Чтобы быть более точным, может быть полезно вычислить параметры эллипса.

введите описание изображения здесь

Для этого вы можете использовать функцию fit_ellipse , доступную в fileexchange.

 Iedge = edge(mat2gray(I),'Canny');
[x,y] = find(Iedge');
hold on
A = fit_ellipse(x,y,h);
 

Комментарии:

1. быстрый и эффективный, мне это нравится!

2. Это также убрало тень галактики, которую не нужно удалять.

3. @AnStudent тогда вам следует изменить level . Смотрите документацию на im2bw .