Спектральный анализ изображений python

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Spectral Analysis in Python

License

cokelaer/spectrum

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.rst

SPECTRUM : Spectral Analysis in Python

https://coveralls.io/repos/cokelaer/spectrum/badge.png?branch=master

contributions: Please join https://github.com/cokelaer/spectrum
contributors: https://github.com/cokelaer/spectrum/graphs/contributors
issues: Please use https://github.com/cokelaer/spectrum/issues
documentation: http://pyspectrum.readthedocs.io/
Citation: Cokelaer et al, (2017), ‘Spectrum’: Spectral Analysis in Python, Journal of Open Source Software, 2(18), 348, doi:10.21105/joss.00348

http://www.thomas-cokelaer.info/software/spectrum/html/_images/psd_all.png

Spectrum contains tools to estimate Power Spectral Densities using methods based on Fourier transform, Parametric methods or eigenvalues analysis:

  • The Fourier methods are based upon correlogram, periodogram and Welch estimates. Standard tapering windows (Hann, Hamming, Blackman) and more exotic ones are available (DPSS, Taylor, . ).
  • The parametric methods are based on Yule-Walker, BURG, MA and ARMA, covariance and modified covariance methods.
  • Non-parametric methods based on eigen analysis (e.g., MUSIC) and minimum variance analysis are also implemented.
  • Multitapering is also available

The targetted audience is diverse. Although the use of power spectrum of a signal is fundamental in electrical engineering (e.g. radio communications, radar), it has a wide range of applications from cosmology (e.g., detection of gravitational waves in 2016), to music (pattern detection) or biology (mass spectroscopy).

spectrum is available on Pypi:

conda config --append channels conda-forge conda install spectrum

To install the conda executable itself, please see https://www.continuum.io/downloads .

Читайте также:  Java oracle jdbc drivers

Please see github for any issues/bugs/comments/contributions.

  • move CI to github actions
  • include python 3.9 support
  • include PR from tikuma-lshhsc contributor to speedup eigenfre module
  • fix deprecated warnings

Some notebooks (external contributions)

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Python module for hyperspectral image processing

License

spectralpython/spectral

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.rst

Spectral Python (SPy) is a pure Python module for processing hyperspectral image data (imaging spectroscopy data). It has functions for reading, displaying, manipulating, and classifying hyperspectral imagery. Full details about the package are on the web site.

The latest release is always hosted on PyPI, so if you have pip installed, you can install SPy from the command line with

Packaged distributions are also hosted at PyPI and GitHub so you can download and unpack the latest zip/tarball, then type

To install the latest development version, download or clone the git repository and install as above. No explicit installation is required so you can simply access (or symlink) the spectral module within the source tree.

Finally, up-to-date guidance on how to install via the popular conda package and environment management system can be found at official conda-forge documentation.

To run the suite of unit tests, you must have numpy installed and you must have the sample data files downloaded to the current directory (or one specified by the SPECTRAL_DATA environment variable). To run the unit tests, type

python -m spectral.tests.run

Using SPy interactively with its visualization capabilities requires IPython and several other packages (depending on the features used). See the web site for details.

About

Python module for hyperspectral image processing

Читайте также:  Выполнить код python online

Источник

Исследование характеристик двумерной спектрограммы с преобразованием Фурье изображения

1. Амплитуда преобразования Фурье называется спектром Фурье или частотным спектром.

2. Нулевое положение F (u) обратно пропорционально ширине W «коробчатой» функции.

3. Теорема о свертке: преобразование Фурье свертки двух функций в пространственной области равно произведению преобразования Фурье двух функций в частотной области. f (t) * h (t) H (u) F (u)

4. Теорема выборки: если выборки получены с частотой дискретизации, в два раза превышающей наивысшую частоту функции, функция непрерывного ограничения полосы частот может быть полностью восстановлена ​​из ее набора выборок.

5. Сильное замешательство может даже вызвать полное непонимание.

6. Наиболее медленно изменяющаяся частотная составляющая (u = v = 0) пропорциональна среднему уровню серого изображения. Термин DC определяет средний уровень серого изображения.

7. Нулевое среднее значение означает, что имеется отрицательная градация серого.В настоящее время изображение не является истинным описанием исходного изображения, поскольку все отрицательные оттенки серого были обрезаны для отображения.

8. Добавление небольшой константы к фильтру высоких частот не повлияет на резкость, но действительно может предотвратить исключение составляющей постоянного тока и сохранить тон.

9. На спектрограмме центральная часть (около средней точки (0,0) УФ-системы координат) представляет низкочастотную часть исходного изображения.

10. Если исходное изображение имеет очень очевидные законы, например, простой узор регулярно смещается и заполняет весь график, то его частотный спектр обычно выглядит как круг ярких пятен вокруг начала координат.

11. Инвертируйте изображение в оттенках серого, и «узор» его спектра не изменится. (Личное понимание: инверсия только переворачивает черный и белый, но не меняет контраст при изменении уровня серого)

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

13. Высокочастотная составляющая объясняет внезапное изменение сигнала, в то время как низкочастотная составляющая определяет общее изображение сигнала.

Используемый инструмент анализа преобразования Фурье — Halcon, код выглядит следующим образом:

read_image (Image, 'C:/Users/xiahui/Desktop/1.jpg') fft_image (Image, ImageFFT)

2. Анализ спектрограмм различных изображений.

Слева — исходное изображение, а справа — спектр после преобразования Фурье.

1. Все черное изображение-спектрограмма тоже вся черная (Разрешение изображения 240 * 240

2. Серое изображение — в центре спектрограммы есть белый маленький квадрат размером с один пиксель, координаты (120,120), значение (30480,0).

3. Все белое изображение — в центре спектрограммы есть небольшой белый квадрат размером в один пиксель. Координаты (120, 120) и значение (61200, 0).

4. Нарисуйте круг на картинке — спектрограмма имеет форму концентрических кругов, значение центра (координаты 120, 120) равно (3852,64, 0), значения в других местах положительные или отрицательные, а тенденция ближе к центральному значению. Чем больше абсолютное значение.

5. Нарисуйте квадрат на картинке — центральное значение (5143,03, 0), а значения в других местах — положительные или отрицательные. Тенденция такова, что чем ближе к центральному значению, тем больше абсолютное значение.

Читайте также:  Php ограничение времени работы скрипта

6. Поверните квадрат на приведенном выше рисунке на 45 градусов — самое центральное значение (5140,22, 0), которое можно рассматривать как 5140,22≈5143,03; значения в других местах положительные или отрицательные, и тенденция такова, что чем ближе к центральному значению, тем больше абсолютное значение.

7. Нарисуйте два круга — центральное значение (7704,13,0).

8. Нарисуйте белый и серый кружки — центральное значение (5772,82,0).

9. Нарисуйте четыре круга — самое центральное значение (15402,8,0).

10. Нарисуйте 2 квадрата — центральное значение (10061,8,0).

11. Нарисуйте четыре квадрата, повернутых на 45 градусов — самое центральное значение (20114.3, 0)

12. Проведите прямую линию — центральное значение (766,0).

13. Проведите линию под углом 15 ° — самое центральное значение будет (876,571,0).

14. Нарисуйте пару пересекающихся линий — самое центральное значение (1194,55,0).

15. Нарисуйте плавный круг — хотя он также концентрический, он не так очевиден, как раньше; самое центральное значение — (1849,6, 0)

16. Заполните все изображение градиентом — центральное значение (30470, 0), которое можно считать равным значению серого изображения (30480).

17. Нарисуйте полосу градиента с уклоном 15 ° — самое центральное значение (12051,9,0).

18. Сделайте снимок и проведите различную обработку, а затем посмотрите на их спектрограммы соответственно.

Исходное изображение, обратное изображение, слабое размытие по Гауссу, сильное размытие по Гауссу, среднее серое изображение, обратное среднее серое изображение.

Обработанный код выглядит следующим образом:

read_image (Image1, 'C:/Users/xiahui/Desktop/1.jpg') read_image (Image2, 'C:/Users/xiahui/Desktop/2.jpg') read_image (Image3, 'C:/Users/xiahui/Desktop/3.jpg') read_image (Image4, 'C:/Users/xiahui/Desktop/4.jpg') read_image (Image5, 'C:/Users/xiahui/Desktop/5.jpg') read_image (Image6, 'C:/Users/xiahui/Desktop/6.jpg') fft_image (Image1, ImageFFT1) fft_image (Image2, ImageFFT2) fft_image (Image3, ImageFFT3) fft_image (Image4, ImageFFT4) fft_image (Image5, ImageFFT5) fft_image (Image6, ImageFFT6)

Из вышесказанного видно, что после инверсии «узор» спектрограммы изображения не изменяется. Но на самом деле значение меняется. Значения центральных точек (120, 120) на 6 изображениях следующие:

По приведенному выше примеру можно сделать два вывода:

1. Если на изображении есть тонкие полоски, то вдоль направления тонких полосок нет изменения или небольшого изменения значения серого, так что спектрограмма имеет одинвертикальныйЯркая линия тонкой полоски. Это связано с тем, что получение спектрограммы цифрового изображения связано с изменением оттенков серого (градиентом) изображения.

2. Значение центральной точки (120, 120) изображения должно быть связано со средним уровнем серого изображения. В примере 3 (полностью белое изображение) уровень серого не изменяется, поэтому нет изменения частоты. Вся энергия сосредоточена в спектрограмме. В блоке одного белого пикселя в центре его значение составляет 61200 (чем выше разрешение изображения, тем больше предельное значение). В примере 18 значение центральной точки среднего спектра серого изображения составляет 47280, а среднее значение серого инвертировано. Спектр фигуры 13920, а 47280 + 13920 = 61200. Уровень серого для среднего изображения с серой шкалой составляет 198, а уровень серого для инвертированного среднего изображения с серой шкалой составляет 57.

Источник

Оцените статью