Оценка фона (photutils.background) — photutils 1.8.0
Введение
Для точного измерения фотометрических и морфологических свойств астрономических источников, требуется точная оценка фон, который может быть как от неба, так и от детектора. Сходным образом, наличие точной оценки фонового шума важно для определение значимости обнаружения источника и для оценки фотометрические ошибки.
К сожалению, точная оценка фона и фонового шума сложная задача. Кроме того, поскольку астрономические изображения могут охватывать широкий разнообразие сцен, нет единого метода оценки фона это всегда будет применимо. Photutils предоставляет инструменты для оценки фон и фоновый шум в ваших данных, но они, скорее всего, требуется некоторая настройка для оптимизации фоновой оценки ваших данных.
Скалярная оценка фона и шума
Простая статистика
Если уровень фона и шума относительно постоянны в
изображения, самый простой способ оценить эти значения — вывести скаляр
величины с помощью простых приближений. При вычислении изображения
статистике необходимо учитывать астрономические источники, присутствующие
на изображениях, которые добавляют положительный хвост к распределению пикселей
интенсивности. Например, можно рассмотреть возможность использования медианы изображения как
уровень фона и стандартное отклонение изображения как 1-сигма
фоновый шум, но результирующие значения смещены из-за присутствия
реальные источники.
Несколько лучший метод включает использование статистики, которая устойчивы к наличию выбросов, таких как biweight расположение для уровня фона и biweight масштаб или нормализованное среднее абсолютное отклонение (MAD) для оценка фонового шума. Однако для большинства астрономических сцен эти методы также будут искажены наличием астрономических источников в Изображение.
В качестве примера мы загружаем синтетическое изображение, состоящее из 100 источников с фон с распределением по Гауссу, среднее значение которого равно 5 и является стандартным отклонение 2:
>>> из photutils.datasets импортировать make_100gaussians_image >>> данные = make_100gaussians_image()
Построим изображение:
>>> импортировать matplotlib.pyplot как plt >>> из astropy.visualization импортировать SqrtStretch >>> из astropy.visualization.mpl_normalize импортировать ImageNormalize >>> норма = ImageNormalize(stretch=SqrtStretch()) >>> plt.imshow(данные, норма=норма, происхождение='ниже', cmap='Greys_r', ... интерполяция = 'ближайший')
( Исходный код
, png
, нанимает.png
, pdf
, svg
)
И медиана изображения, и местоположение бивеса больше истинного уровень фона 5:
>>> импортировать numpy как np >>> из astropy.stats импортировать biweight_location >>> печать (np.median (данные)) 5.225529518399048 >>> print(biweight_location(данные)) 5.186759755495727
Аналогичным образом, используя среднее абсолютное отклонение для оценки Уровень фонового шума дает значение, превышающее истинное значение 2:
>>> из astropy.stats импортировать mad_std >>> print(mad_std(данные)) 2.1443760096598914
Источники клиппинга Sigma
Наиболее широко используемый метод удаления источников с изображения. статистика называется сигма-отсечением. Вкратце, пиксели, находящиеся выше или ниже указанного уровня сигмы от медианы отбрасываются, а статистика пересчитывается. Процедура обычно повторяется через количество итераций или до тех пор, пока не будет достигнута сходимость. Этот метод обеспечивает лучшую оценку фона и фонового шума уровни:
>>> из astropy.stats импортировать sigma_clipped_stats >>> среднее значение, медиана, стандартное значение = sigma_clipped_stats (данные, sigma = 3,0) >>> print((среднее, медиана, станд.)) (5.199138651621793, 5.155587433358291, 2.094275212132969)
Маскировка источников
Еще лучше исключить источники из изображения с помощью
маскируя их. Этот метод требует определения источников
в данных, которые, в свою очередь, зависят от фона
и фоновый шум. Поэтому данный метод оценки
фон и фон RMS требуют итеративной процедуры.
Одним из способов создания маски источника является использование
изображение сегментации. Здесь мы используем
удобная функция для получения
грубая оценка порога при уровне фонового шума 2 сигма.
Затем мы используем функцию detect_sources
для
создать SegmentationImage
. Наконец, мы используем make_source_mask()
метод с круговым расширением для создания исходной маски:
>>> из astropy.stats импортировать sigma_clipped_stats, SigmaClip >>> из photutils.segmentation импортаDetect_threshold,Detect_Sources >>> из photutils.utils импортировать round_footprint >>> sigma_clip = SigmaClip(sigma=3.0, maxiters=10) >>> порог = обнаружение_порога(данные, nsigma=2.0, sigma_clip=sigma_clip) >>> segment_img = detect_sources (данные, порог, npixels = 10) >>> след = круговой_след (радиус = 10) >>> маска = segment_img.make_source_mask (отпечаток = след) >>> среднее значение, медиана, стандартное значение = sigma_clipped_stats (данные, sigma = 3,0, маска = маска) >>> print((среднее, медиана, станд.)) (4,994042038715669, 4,991333562774164, 1,9699473426119296)
Процедуру обнаружения и маскирования источника можно повторять дальше. Даже с одной итерацией мы находимся в пределах 0,2% от истинного значения фона и 1,5% истинного среднеквадратичного значения фона.
Двухмерный фон и оценка шума
Если фон или фоновый шум различаются по изображению, тогда вы, как правило, захотите создать 2D-изображение фона и фоновое среднеквадратичное значение (или вычислить эти значения локально). Это может быть достигается путем применения вышеуказанных методов к субрегионам изображение. Обычная процедура заключается в использовании сигма-усеченной статистики в каждом сетка сетки, которая покрывает входные данные для создания изображения с низким разрешением изображение на заднем плане. Окончательный фон или фоновое RMS-изображение можно затем быть сгенерированы путем интерполяции изображения с низким разрешением.
Photutils предоставляет Background2D
класса для оценки 2D-фона и фонового шума в
астрономический образ.
Фон 2D
требуется размер блока ( box_size
), в котором можно оценить
фон. Выбор размера коробки требует от пользователя некоторой осторожности.
Размер коробки, как правило, должен быть больше, чем типичный размер
источники на изображении, но достаточно маленькие, чтобы инкапсулировать любой фон
вариации. Для достижения наилучших результатов размер коробки также следует выбирать таким образом.
что данные покрыты целым числом полей в обоих
размеры. Если это не так, то edge_method
ключевое слово
определяет, следует ли дополнить или обрезать изображение таким образом, чтобы
целое число, кратное box_size
в обоих измерениях. Уровень фона в каждой из сеток рассчитывается с использованием
функция или вызываемый объект (например, экземпляр класса), вводимые через ключевое слово bkg_estimator
. Photutils предоставляет несколько фоновых
классы, которые можно использовать:
Средний фон
Медианный фон
ModeEstimatorBackground
МММФон
SExtractorBackground
BiweightLocationBackground
По умолчанию используется экземпляр SExtractorBackground
. Для этого метода фон в каждой сетке рассчитывается как
(2,5 *
медиана) - (1,5 * среднее)
. Однако, если (среднее - медиана)/станд. > 0,3
то вместо этого используется медиана
.
Аналогичным образом, уровень среднеквадратичного значения фона в каждой сетке рассчитывается с использованием
ввод функции или вызываемого объекта с помощью ключевого слова bkgrms_estimator
.
Для этой цели Photutils предоставляет следующие классы:
StdBackgroundRMS
MADStdBackgroundRMS
BiweightScaleBackgroundRMS
Для еще большей гибкости пользователи могут ввести пользовательскую функцию или
вызываемый объект на bkg_estimator
и/или bkgrms_estimator
ключевые слова.
По умолчанию bkg_estimator
и bkgrms_estimator
применяется к данным с сигма-усечением. Отсечение сигмы определяется вводом
объект astropy.
для stats.SigmaClip
sigma_clip
ключевое слово. По умолчанию выполняется отсечение сигма с
и maxiters=10
. Отсечение сигмы можно отключить, установив sigma_clip=Нет
.
После определения уровня фона в каждом из ящиков
фоновое изображение с низким разрешением может быть отфильтровано по медиане, с окном
размером filter_size
, чтобы подавить локальные недооценки или переоценки
(например, из-за ярких галактик в конкретном прямоугольнике). Аналогично, медиана
фильтр может быть применен только к тем полям, где уровень фона
выше указанного порога ( filter_threshold
).
Фон с низким разрешением и фоновые RMS-изображения изменены на
исходный размер данных с использованием функции или вызываемого объекта
ввод через интерполятор
ключевое слово. Photutils предоставляет два
классы интерполятора: BkgZoomInterpolator
(по умолчанию), который
выполняет сплайн-интерполяцию и BkgIDWInterpolator
, который использует
взвешенная по обратному расстоянию (IDW) интерполяция.
Для этого примера мы создадим тестовый образ, добавив сильное фоновый градиент к изображению, определенному выше:
>>> ny, nx = data.shape >>> y, x = np.mgrid[:ny, :nx] >>> градиент = х * у / 5000,0 >>> data2 = данные + градиент >>> plt.imshow(data2, norm=norm, origin='lower', cmap='Greys_r', ... интерполяция = 'ближайший')
( Исходный код
, png
, нанимает.png
, pdf
, svg
)
Начнем с создания объекта Background2D
с использованием поля размером 50 x 50 и медианного фильтра 3 x 3. Мы оценим
уровень фона в каждой сетке как медиану с сигма-обрезанием с использованием
экземпляр MedianBackground
.
>>> из astropy.stats импортировать SigmaClip >>> из photutils.background импортировать Background2D, MedianBackground >>> sigma_clip = SigmaClip(sigma=3.0) >>> bkg_estimator = Медианный фон() >>> bkg = Background2D(data2, (50, 50), filter_size=(3, 3), ... sigma_clip=sigma_clip, bkg_estimator=bkg_estimator)
2D-фон и фоновые RMS-изображения извлекаются с помощью background
и background_rms
атрибуты соответственно на
возвращаемый объект. Версии этих изображений с низким разрешением хранятся
в атрибутах background_mesh
и background_rms_mesh
,
соответственно. Глобальное медианное значение фона низкого разрешения
а фоновое изображение RMS можно получить с помощью background_median
и background_rms_median
атрибутов, соответственно:
>>> печать (bkg.background_median) 10.821997862561792 >>> печать (bkg.background_rms_median) 2,298820539683762
Нарисуем фоновое изображение:
>>> plt.imshow(bkg.background, origin='lower', cmap='Greys_r', ... интерполяция = 'ближайший')
( Исходный код
, png
, нанимает.png
, pdf
, svg
)
и фоновое изображение:
>>> plt.imshow(data2 - bkg.background, norm=normal, origin='lower', ... cmap='Greys_r', интерполяция='ближайший')
( Исходный код
, png
, нанимает.png
, pdf
, svg
)
Маскировка
Маски также можно вводить в Background2D
. маска Ключевое слово
может использоваться для маскировки источников или плохих пикселей на изображении.
до оценки фоновых уровней.
Кроме того, coverage_mask
ключевое слово можно использовать для маскировки пробела
области без покрытия данными (например, из повернутого изображения или изображения
из мозаики). В противном случае значения данных в регионах без
покрытие (обычно нули или NaN) неблагоприятно повлияет на фон
статистика. В отличие от mask
, coverage_mask
применяется к выходу
фоновые и фоновые карты RMS. Ключевое слово fill_value
определяет
значение, присвоенное в выходных фоновых и фоновых картах RMS
где вход coverage_mask
равно True
.
Давайте создадим повернутое изображение с пустыми областями и построим его (ПРИМЕЧАНИЕ: этот пример требует scipy):
>>> из scipy.ndimage импортировать повернуть >>> данные3 = вращать(данные2, -45.0) >>> норма = ImageNormalize(stretch=SqrtStretch()) >>> plt.imshow(data3, origin='lower', cmap='Greys_r', norm=norm, ... интерполяция = 'ближайший')
( Исходный код
, png
, нанимает.png
, pdf
, svg
)
Теперь мы создаем маску покрытия и вводим ее в Background2D
, чтобы исключить регионы, в которых мы
нет данных. В этом примере мы устанавливаем для fill_value
значение 0,0. Для
реальных данных, обычно можно создать маску покрытия из веса или шума
изображение. В этом примере мы также используем меньший размер окна, чтобы помочь захватывать
сильный градиент на заднем плане. Мы также увеличиваем стоимость exclude_percentile 9Ключевое слово 0026, чтобы включить больше полей по краю
повернутое изображение:
>>> маска_покрытия = (данные3 == 0) >>> bkg3 = Background2D(data3, (15, 15), filter_size=(3, 3), ... маска_покрытия=маска_покрытия, значение_заполнения=0.0, ... exclude_percentile=50.0)
Обратите внимание, что маска покрытия
применяется к выходному фону.
изображение (значения присвоены fill_value
):
>>> норма = ImageNormalize(stretch=SqrtStretch()) >>> plt.imshow(bkg3.background, origin='lower', cmap='Greys_r', norm=norm, ... интерполяция = 'ближайший')
( Исходный код
, png
, нанимает.png
, pdf
, svg
)
Наконец, давайте вычтем фон из изображения и построим его:
>>> норма = ImageNormalize(stretch=SqrtStretch()) >>> plt.imshow(data3 - bkg3.background, origin='lower', cmap='Greys_r', ... норма=норма, интерполяция='ближайший')
( Исходный код
, png
, нанимает.png
, pdf
, свг
)
Если на изображении все еще присутствует небольшой остаточный фон,
вычитание фона можно улучшить, маскируя источники
и/или посредством дальнейших итераций.
Построение сеток
Наконец, сетки, которые использовались при создании 2D
фон можно нанести на исходное изображение с помощью метод plot_meshes()
. Мы тут
увеличьте небольшую часть изображения, чтобы показать фоновые сетки.
Сетки без маркера центра были исключены.
>>> plt.imshow(data3, origin='lower', cmap='Greys_r', norm=norm, ... интерполяция = 'ближайший') >>> bkg3.plot_meshes(outlines=True, marker='.', color='cyan', alpha=0.3) >>> plt.xlim(0, 250) >>> plt.ylim(0, 250)
( Исходный код
, png
, нанимает.png
, pdf
, svg
)
Ссылка/API
Этот подпакет содержит инструменты для оценки фона и фона RMS в изображении.
Классы
| Класс для оценки двумерного фона и фонового среднеквадратичного шума в изображении. |
| Базовый класс для классов, оценивающих скалярные фоновые значения. |
| Базовый класс для классов, оценивающих скалярные фоновые значения RMS. |
| Класс для вычисления фона в массиве с использованием расположения двух весов. |
| Класс для расчета среднеквадратичного значения фона в массиве в виде (сигма-обрезания) двухвесовой шкалы. |
| Этот класс создает полноразмерные фоновые изображения и среднеквадратичные изображения фона из изображений сетки с более низким разрешением с использованием интерполяции с взвешиванием обратных расстояний (IDW) ( |
| Этот класс создает полноразмерные фоновые и среднеквадратичные изображения фона из изображений сетки с более низким разрешением, используя |
| Класс для расчета среднеквадратичного значения фона в массиве с использованием среднего абсолютного отклонения (MAD). |
| Класс для расчета фона в массиве по алгоритму DAOPHOT MMM. |
| Класс для вычисления фона в массиве как среднее (отсеченное сигма). |
| Класс для вычисления фона в массиве как медианы (отсеченной по сигме). |
| Класс для вычисления фона в массиве с использованием оценщика режима формы |
| Класс для вычисления фона в массиве с использованием алгоритма Source Extractor. |
| Класс для расчета среднеквадратичного значения фона в массиве как стандартное отклонение (отсеченное сигма). |
Схема наследования классов
[css3] background-size - 배경 이미지 크기 조절
[개발]프로그래밍/css3
[css3] background-size — краткий размер файла
좋은 블로그 2021. 4. 15. 10:411. 개념
background-size - 배경 이미지 크기 조절background-size
속성 | 설명 |
авто | 원래 배경 이미지 크기만큼 표시(기본 값) |
содержат | 지정한 요소 안에 배경 이미지가 다 들어오도록 이미지를 확대/축소 |
крышка | 지정한 요소를 다 덮도록 배경이미지를 확대/축소 |
크기 값 | 너비 값과 높이 값을 지정 |
백분율 | 지정한 요소를 기준으로 백분율 값을 지정 |
2. Номер телефона
html5 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<голова> <метакодировка "=" "утф-8" > <название> 키보드와 하루 название> <стиль> раздел { маржа сверху : 20 пикселей ; ширина : 300 пикселей ; высота : 300 пикселей ; фоновое изображение : URL(монитор.png) ; граница : 1px сплошной #000 ; дисплей : встроенный блок ; }
голова> <тело> <стиль div "=" размер фона : авто ' > дел> <стиль div "=" размер фона : содержать ' > дел> <стиль div "=" размер фона : крышка ' > дел> <стиль div "=" размер фона : 30 пикселей 30 пикселей ' > дел> <стиль div "=" размер фона : 20% ' > дел> тело> |