Show histogram что это

Русские Блоги

Действительно понять гистограмму изображения

оглавление

1. Что такое гистограмма изображения? Какая польза от гистограммы изображения?

Гистограмма изображенияИспользуется, чтобыГистограмма, показывающая распределение яркости на изображении, Учитывая, что в изображении есть несколько пикселей с определенной яркостью или определенным диапазоном яркости,То есть подсчитать количество пикселей определенной яркости на картинке

Гистограмма изображения из-за егоМеньше вычислительных затратИ имеютПеревод изображения, вращение, масштабированиеИ многие другие преимущества, широко используемые вОбработка изображенийРазличные области, особенноСегментация порога серого изображенияЦветное изображение поискаа такжеКлассификация изображений.

Во-вторых, рассчитать гистограмму изображения

1. OpenCV версия

функция:cv2.calcHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None)

Роль: рассчитать каждыйПиксельный блокЧисло на картинке. (Причина в пиксельном блоке, потому что следующее может быть передано в Bin для изменения количества пиксельных значений в блоке)

Show histogram что это. 85e33dad7b45138951de5b2abe7ef1af. Show histogram что это фото. Show histogram что это-85e33dad7b45138951de5b2abe7ef1af. картинка Show histogram что это. картинка 85e33dad7b45138951de5b2abe7ef1af

Если мы хотим вывести все три канала BGR на одну и ту же картинку:

Вывод различных значений исторических значений:

Show histogram что это. 754e3c6e21dd64be2c419e9c9e72b629. Show histogram что это фото. Show histogram что это-754e3c6e21dd64be2c419e9c9e72b629. картинка Show histogram что это. картинка 754e3c6e21dd64be2c419e9c9e72b629Show histogram что это. 3a85b1f261f680cd4cf2426327d36dbf. Show histogram что это фото. Show histogram что это-3a85b1f261f680cd4cf2426327d36dbf. картинка Show histogram что это. картинка 3a85b1f261f680cd4cf2426327d36dbf

2. Версия PLT

Show histogram что это. af91f0bfbd6861ea598e6d93444dbe47. Show histogram что это фото. Show histogram что это-af91f0bfbd6861ea598e6d93444dbe47. картинка Show histogram что это. картинка af91f0bfbd6861ea598e6d93444dbe47

3. Numpy версия

(Эта эффективность относительно низкая, обычно не используется)

4. Изображение HSV, гистограмма H-S

Насыщенный оттенок

Show histogram что это. 57e9950ad9e2ae61a1d8708384c39f8d. Show histogram что это фото. Show histogram что это-57e9950ad9e2ae61a1d8708384c39f8d. картинка Show histogram что это. картинка 57e9950ad9e2ae61a1d8708384c39f8d

3. Выравнивание гистограммы

1. Глобальное равновесие

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

В гистограмму изображения внесены следующие изменения:(Гистограмма растягивается)

Show histogram что это. b7497c02d4cbf0bfed0c4179a7442ff7. Show histogram что это фото. Show histogram что это-b7497c02d4cbf0bfed0c4179a7442ff7. картинка Show histogram что это. картинка b7497c02d4cbf0bfed0c4179a7442ff7

функция:cv2.equalizeHist(gray)

Show histogram что это. 2db7b71cb940a524cce195a5a5feab0f. Show histogram что это фото. Show histogram что это-2db7b71cb940a524cce195a5a5feab0f. картинка Show histogram что это. картинка 2db7b71cb940a524cce195a5a5feab0f

Гистограмма изображения изменяется до и после отображения:

Show histogram что это. d5b91ac6c8da97087cfed3213a59dc46. Show histogram что это фото. Show histogram что это-d5b91ac6c8da97087cfed3213a59dc46. картинка Show histogram что это. картинка d5b91ac6c8da97087cfed3213a59dc46

2. Индивидуальная степень равновесия (клах)

Во многих случаях глобальное выравнивание не дает ожидаемых результатов: просто подумайте о представленной выше картине, которая явно темна, и объекты становятся трудно распознать.

функция:cv2.createCLAHE(, clipLimit=None, tileGridSize=None)

Show histogram что это. 642c477eaca63943eff5b82924f76569. Show histogram что это фото. Show histogram что это-642c477eaca63943eff5b82924f76569. картинка Show histogram что это. картинка 642c477eaca63943eff5b82924f76569

Show histogram что это. 0abfa156cb497a9674b8567b93e3bbd4. Show histogram что это фото. Show histogram что это-0abfa156cb497a9674b8567b93e3bbd4. картинка Show histogram что это. картинка 0abfa156cb497a9674b8567b93e3bbd4

4. Сравнение гистограмм

функция:cv2.compareHist(H1, H2, method)

Show histogram что это. b61b7c34a062f4b08d0633e829ed7b82. Show histogram что это фото. Show histogram что это-b61b7c34a062f4b08d0633e829ed7b82. картинка Show histogram что это. картинка b61b7c34a062f4b08d0633e829ed7b82

5. Гистограмма отражения проекции

Обзор обратной проекции

Он выведет изображение того же размера, что и входное изображение, из которыхКаждое значение пикселя представляет вероятность того, что соответствующая точка на входном изображении принадлежит цели, Проще говоря, чем выше значение пикселя выходного изображения, тем больше вероятность того, что оно будет представлять искомую цель.

Если изображение показывает видСтруктурная текстура или уникальный объектТогда гистограмму этой области можно рассматривать как функцию вероятности, вид которойПиксельПринадлежитТекстура или объектВероятность а такжеОбратная проекцияПросто записьДанное изображениеМетод того, как пиксели в модели гистограммы адаптируются к распределению пикселей.
Проще говоря, так называемая обратная проекция заключается в том, чтобы сначала рассчитать модель гистограммы объекта, а затем использовать эту модель для поиска объекта на изображении. Например, есть цветная гистограмма, которую можно найти на изображении с помощью обратной проекции.

Роль обратной проекции

Обратное проецирование используется для нахождения точки или области во входном изображении (обычно большого размера), которое наилучшим образом соответствует конкретному изображению (обычно маленькому или только 1 пикселю, называемому шаблонным изображением), то естьПоложение шаблона изображенияПоявляется в положении входного изображения.

Особые случаи

функция:cv2.calcBackProject(images, channels, hist, ranges, scale, dst=None)

Источник

Как работает гистограмма Prometheus?

Ниже приведен пример формата экспозиции Prometheus с меткой handler :

_sum и _count работают точно так же, как и для сводки, и могут быть использованы для получения средней продолжительности выполнения в течение последних пяти минут:

Однако существуют очень редкие случаи где _sum отсутствует, например, в некоторых метриках из экспортера MySQLd.

Чтобы вычислить, скажем, квантиль 0,9 (90-й процентиль), вам следует использовать:

Одно большое преимущество гистограмм перед сводками заключается в том, что вы можете агрегировать bucket-ы перед вычислением квантиля — следя за тем, чтобы не потерять метку le :

В дополнении к агрегируемости, гистограммы дешевле на клиенте, так как счетчики быстро инкрементируются. Так почему бы не использовать гистограммы всегда? Есть длинный ответ, но короткая версия состоит в том, что с гистограммами вы должны предварительно выбирать свои bucket-ы, и затраты перемещаются с клиента на сам Prometheus из-за количества элементов bucket. Десять bucket-ов по умолчанию охватывают типичный веб-сервис с задержкой в ​​диапазоне от миллисекунды до секунды, и в некоторых случаях вам может понадобиться это изменить. Здесь, например, они были переопределены, чтобы лучше отслеживать запросы на PromQL, которые по умолчанию имеют двухминутный тайм-аут. Наличие более десятка bucket-ов даст более точные результаты, но может также наплодить множество временных рядов. Особенно в сочетании с другими метками.

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

Источник

Способы создания гистограмм с помощью Python

За последний год я сталкивалась с необходимостью рисования гистограмм и столбчатых диаграмм достаточно часто для того, чтобы появилось желание и возможность об этом написать. Кроме того, мне самой довольно сильно не хватало подобной информации. В этой статье приведен обзор 3 методов создания таких графиков на языке Python.

Начнем с того, чего я сама по своей неопытности не знала очень долго: столбчатые диаграммы и гистограммы — разные вещи. Основное отличие состоит в том, что гистограмма показывает частотное распределение — мы задаем набор значений оси Ox, а по Oy всегда откладывается частота. В столбчатой диаграмме (которую в англоязычной литературе уместно было бы назвать barplot) мы задаем и значения оси абсцисс, и значения оси ординат.

Для демонстрации я буду использовать избитый набор данных библиотеки scikit learn Iris. Начнем c импортов:

Преобразуем набор данных iris в dataframe — так нам удобнее будет с ним работать в будущем.

Из интересующих нас параметров data содержит информацию о длине чашелистиков и лепестков и ширине чашелистиков и лепестков.

Используем Matplotlib
Построение гистограммы
Cтроим обычную гистограмму, показывающую частотное распределение длин лепестков и чашелистиков:

Show histogram что это. qakwgnxnm3t 1w0jklc1y3okuji. Show histogram что это фото. Show histogram что это-qakwgnxnm3t 1w0jklc1y3okuji. картинка Show histogram что это. картинка qakwgnxnm3t 1w0jklc1y3okuji

Построение столбчатой диаграммы

Используем методы matplotlib-а, чтобы сравнить ширину листьев и чашелистиков. Это кажется удобнее всего делать на одном графике:

Для примера и в целях упрощения картинки возьмем первые 50 строк dataframe.

Show histogram что это. pcdnpi tfcb ytakdramerf9r9o. Show histogram что это фото. Show histogram что это-pcdnpi tfcb ytakdramerf9r9o. картинка Show histogram что это. картинка pcdnpi tfcb ytakdramerf9r9o

Используем методы seaborn

На мой взгляд, многие задачи по построению гистограмм проще и эффективнее выполнять с помощью методов seaborn (кроме того, seaborn выигрывает еще и своими графическими возможностями, на мой взгляд).

Я приведу пример задач, решающихся в seaborn с помощью одной строчки кода. Особенно seaborn выигрышный, когда надо построить распределение. Скажем, нам надо построить распределение длин чашелистиков. Решение этой задачи таково:

Show histogram что это. dctzntuplnwq9wnda0sp1qey8oi. Show histogram что это фото. Show histogram что это-dctzntuplnwq9wnda0sp1qey8oi. картинка Show histogram что это. картинка dctzntuplnwq9wnda0sp1qey8oi

Если же вам необходим только график распределения, сделать его можно так:

Show histogram что это. . Show histogram что это фото. Show histogram что это-. картинка Show histogram что это. картинка

Подробнее о построении распределений в seaborn можно почитать тут.

Здесь все просто. На самом деле, это оболочка matplotlib.pyplot.hist(), но вызов функции через pd.hist() иногда удобнее менее поворотливых конструкций matplotlib-a. В документации библиотеки pandas можно прочитать больше.

Show histogram что это. . Show histogram что это фото. Show histogram что это-. картинка Show histogram что это. картинка

Спасибо, что прочитали до конца! Буду рада отзывам и комментариям!

Источник

Histogram

What is a Histogram?

A histogram is used to summarize discrete or continuous data. In other words, it provides a visual interpretation Data Presentation Analysts need to effectively communicate the output of financial analysis to management, investors, and business partners. of numerical data by showing the number of data points that fall within a specified range of values (called “bins”). It is similar to a vertical bar graph. However, a histogram, unlike a vertical bar graph, shows no gaps between the bars.

Show histogram что это. histogram. Show histogram что это фото. Show histogram что это-histogram. картинка Show histogram что это. картинка histogram

Parts of a Histogram

Importance of a Histogram

Creating a histogram provides a visual representation of data distribution. Histograms can display a large amount of data and the frequency FREQUENCY Function The Frequency Function is categorized under Excel Statistical functions. The function will calculate and return a frequency distribution. We can use it to get the frequency of values in a dataset. of the data values. The median MEDIAN Function The MEDIAN Function is categorized under Excel Statistical functions. The function will calculate the middle value of a given set of numbers. Median can be defined as the middle number of a group of numbers. That is, half the numbers return values that are greater than the median and distribution of the data can be determined by a histogram. In addition, it can show any outliers or gaps in the data.

Distributions of a Histogram

A normal distribution: In a normal distribution, points on one side of the average AVERAGE Function Calculate Average in Excel. The AVERAGE function is categorized under Statistical functions. It will return the average of the arguments. It is used to calculate the arithmetic mean of a given set of arguments. As a financial analyst, the function is useful in finding out the average of numbers. are as likely to occur as on the other side of the average.

Show histogram что это. histogram01. Show histogram что это фото. Show histogram что это-histogram01. картинка Show histogram что это. картинка histogram01

A bimodal distribution: In a bimodal distribution, there are two peaks. In a bimodal distribution, the data should be separated and analyzed as separate normal distributions.

Show histogram что это. hisotgram02. Show histogram что это фото. Show histogram что это-hisotgram02. картинка Show histogram что это. картинка hisotgram02

A right-skewed distribution: A right-skewed distribution is also called a positively skewed distribution. In a right-skewed distribution, a large number of data values occur on the left side with a fewer number of data values on the right side. A right-skewed distribution usually occurs when the data has a range boundary on the left-hand side of the histogram. For example, a boundary of 0.

Show histogram что это. histogram03. Show histogram что это фото. Show histogram что это-histogram03. картинка Show histogram что это. картинка histogram03

A left-skewed distribution: A left-skewed distribution is also called a negatively skewed distribution. In a left-skewed distribution, a large number of data values occur on the right side with a fewer number of data values on the left side. A right-skewed distribution usually occurs when the data has a range boundary on the right-hand side of the histogram. For example, a boundary such as 100.

Show histogram что это. histogram04. Show histogram что это фото. Show histogram что это-histogram04. картинка Show histogram что это. картинка histogram04

A random distribution: A random distribution lacks an apparent pattern and has several peaks. In a random distribution histogram, it can be the case that different data properties were combined. Therefore, the data should be separated and analyzed separately.

Show histogram что это. histogram05. Show histogram что это фото. Show histogram что это-histogram05. картинка Show histogram что это. картинка histogram05

Example of a Histogram

Jeff is the branch manager at a local bank. Recently, Jeff’s been receiving customer feedback saying that the wait times for a client to be served by a customer service representative are too long. Jeff decides to observe and write down the time spent by each customer on waiting. Here are his findings from observing and writing down the wait times spent by 20 customers:

Show histogram что это. histogram06. Show histogram что это фото. Show histogram что это-histogram06. картинка Show histogram что это. картинка histogram06

The corresponding histogram with 5-second bins (5-second intervals) would look as follows:

Show histogram что это. histogram07. Show histogram что это фото. Show histogram что это-histogram07. картинка Show histogram что это. картинка histogram07

Jeff can conclude that the majority of customers wait between 35.1 and 50 seconds.

How to Create a Histogram

Let us create our own histogram. Download the corresponding Excel template file for this example.

Step 1: Open the Data Analysis box. This can be found under the Data tab as Data Analysis:

Show histogram что это. histogram10. Show histogram что это фото. Show histogram что это-histogram10. картинка Show histogram что это. картинка histogram10

Step 2: Select Histogram:

Show histogram что это. histogram11. Show histogram что это фото. Show histogram что это-histogram11. картинка Show histogram что это. картинка histogram11

Step 3: Enter the relevant input range and bin range. In this example, the ranges should be:

Make sure that “Chart Output” is checked and click “OK”.

Show histogram что это. histogram12. Show histogram что это фото. Show histogram что это-histogram12. картинка Show histogram что это. картинка histogram12

Related Readings

CFI is the official provider of the global Financial Modeling & Valuation Analyst (FMVA)™ Become a Certified Financial Modeling & Valuation Analyst (FMVA)® CFI’s Financial Modeling and Valuation Analyst (FMVA)® certification will help you gain the confidence you need in your finance career. Enroll today! certification program, designed to help anyone become a world-class financial analyst. To keep advancing your career, the additional CFI resources below will be useful:

Free Excel Tutorial

To master the art of Excel, check out CFI’s FREE Excel Crash Course, which teaches you how to become an Excel power user. Learn the most important formulas, functions, and shortcuts to become confident in your financial analysis.

Show histogram что это. Excel 3. Show histogram что это фото. Show histogram что это-Excel 3. картинка Show histogram что это. картинка Excel 3

to take your career to the next level and move up the ladder!

Источник

Русские Блоги

(3) Гистограмма обработки изображений в OpenCV

Примечание. Эта статья переведена из OpenCV3.0.0 document-> OpenCV-Python Tutorials, включая исправление неправильного кода в исходном документе.

1. Гистограмма-1: найти, нарисовать, проанализировать

Так что же такое гистограмма? Вы можете представить гистограмму как график или рисунок, чтобы дать вам общее представление о распределении интенсивности изображения. Это график значений пикселей по оси X (в диапазоне от 0 до 255, не всегда) и соответствующего количества пикселей в изображении по оси Y.

Это всего лишь один из способов понять изображение. Просматривая гистограмму изображения, вы можете интуитивно понять контраст изображения, распределение яркости и т. Д. Почти все инструменты обработки изображений теперь предоставляют функции на гистограмме. Ниже приведены фотографии с веб-сайта Cambridge in Color. Я предлагаю вам посетить этот веб-сайт для получения более подробной информации.

Show histogram что это. 2af85671aa46f78f064c293e91381d42. Show histogram что это фото. Show histogram что это-2af85671aa46f78f064c293e91381d42. картинка Show histogram что это. картинка 2af85671aa46f78f064c293e91381d42

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

3. Найдите гистограмму.

Теперь, когда у нас есть простое понимание того, что такое гистограмма, мы можем изучить, как ее найти. И OpenCV, и Numpy имеют встроенные функции. Перед использованием этих функций нам необходимо понять некоторые термины, связанные с гистограммами.

DIMS: это количество параметров, которые мы собираем. В этом случае мы собираем только количество значений интенсивности, поэтому здесь 1.

ДИАПАЗОН: это диапазон значений интенсивности, которые вы хотите измерить. Обычно это [0,256], т.е. все значения интенсивности.

1) Расчет гистограммы в OpenCV

Мы используем функцию cv2.calcHist (), чтобы найти гистограмму. Давайте познакомимся с этой функцией и ее параметрами:

Итак, начнем с примера изображения. Просто загрузите изображение в режиме оттенков серого и найдите полную гистограмму.

2) Расчет гистограммы в Numpy

Numpy также предоставляет функцию np.histogram (). Вместо функции calcHist () вы можете попробовать следующее:

hist такое же, как мы рассчитали ранее. Но в ячейках будет 257 элементов, потому что Numpy вычисляет ячейки как 0-0,99, 1-1,99, 2-2,99 и т. Д. Чтобы показать это, они добавляют в конец ячеек 256. Но нам не обязательно достигать 256, достаточно 255.

Кроме того, обратите внимание на другую функцию Numpy, np.bincount (), которая намного быстрее, чем np.histogram () (примерно в 10 раз), поэтому для ряда гистограмм вы можете попробовать ее лучше, не забудьте использовать np. Установите minlength = 256 в bincount (). Например, hist = np.bincount (img.ravel (), minlength = 256).

Примечание. Функция OpenCV быстрее, чем np.histogram () (примерно в 40 раз). Так что придерживайтесь функций OpenCV.

4. Нарисуйте гистограмму.

Ø Shortway: используйте функции рисования matplotlib

Ø Долгий путь: используйте функцию рисования OpenCV

1) Используйте Matplotlib

Matplotlib поставляется с функцией рисования гистограммы: matplot.pyplot.hist ()

Он непосредственно находит гистограмму и рисует ее. Для поиска гистограммы не нужно использовать функцию calcHist () или np.histogram (). Пожалуйста, посмотрите код ниже:

Вероятно, получится следующий результат:

Show histogram что это. 03fa7a94292576ab81d7f3426138c088. Show histogram что это фото. Show histogram что это-03fa7a94292576ab81d7f3426138c088. картинка Show histogram что это. картинка 03fa7a94292576ab81d7f3426138c088

Или вы можете использовать обычный метод рисования matplotlib, который полезен для рисования BGR.Для этого вам сначала нужно найти данные гистограммы.

Show histogram что это. c41e69cedb345c6c0d252b2822fedd9b. Show histogram что это фото. Show histogram что это-c41e69cedb345c6c0d252b2822fedd9b. картинка Show histogram что это. картинка c41e69cedb345c6c0d252b2822fedd9b

2) Используйте OpenCV

С помощью OpenCV вы можете настроить значение гистограммы и ее двоичного файла на координаты x, y, чтобы вы могли использовать функцию cv2.line () или cv2.polyline (), чтобы нарисовать ее для создания того же изображения, что и выше. Это уже доступно в официальной демонстрации OpenCV-Python2.

5. Применение маски.

Мы используем cv2.calcHist (), чтобы найти гистограмму всего изображения. Что делать, если вы хотите найти гистограмму определенных областей изображения? Просто создайте белое изображение с маской в ​​том месте, где вы хотите найти гистограмму, иначе оно будет черным. Затем используйте его как маску.

Show histogram что это. e2c04f9ebce1e239fd15e8ea2c599356. Show histogram что это фото. Show histogram что это-e2c04f9ebce1e239fd15e8ea2c599356. картинка Show histogram что это. картинка e2c04f9ebce1e239fd15e8ea2c599356

2. Гистограмма-2: выравнивание гистограммы.

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

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

Show histogram что это. b7497c02d4cbf0bfed0c4179a7442ff7. Show histogram что это фото. Show histogram что это-b7497c02d4cbf0bfed0c4179a7442ff7. картинка Show histogram что это. картинка b7497c02d4cbf0bfed0c4179a7442ff7

Я предлагаю вам прочитать страницу Википедии о выравнивании гистограмм для получения более подробной информации. Написание примеров дает очень хорошее объяснение, так что почти все можно понять после прочтения. Вместо этого здесь мы увидим его реализацию Numpy. После этого мы увидим его функцию OpenCV.

Show histogram что это. 326295fb29c447d1f020eb8de978055c. Show histogram что это фото. Show histogram что это-326295fb29c447d1f020eb8de978055c. картинка Show histogram что это. картинка 326295fb29c447d1f020eb8de978055c

Еще одна важная особенность выравнивания гистограммы заключается в том, что даже если изображение является более темным (вместо более яркого изображения, которое мы использовали), после выравнивания мы получим почти такое же изображение, что и изображение, которое мы получили. Поэтому он используется как «справочный инструмент» для создания всех изображений с одинаковыми условиями освещения. Это полезно во многих ситуациях. Например, при распознавании лиц перед обучением данных лица изображения лиц выравниваются по гистограмме, чтобы все они имели одинаковые условия освещения.

3. Уравнивание гистограмм в OpenCV

Ниже приведен простой фрагмент кода, который показывает, как мы используем ту же картинку:

Show histogram что это. d79894d0f9c6062ad6182abfe9556d9e. Show histogram что это фото. Show histogram что это-d79894d0f9c6062ad6182abfe9556d9e. картинка Show histogram что это. картинка d79894d0f9c6062ad6182abfe9556d9e

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

Когда гистограмма изображения ограничена определенной областью, эффект выравнивания гистограммы очень хороший. В случае, когда гистограмма покрывает большую область (то есть существуют как яркие, так и темные пиксели), она не будет эффективна там, где интенсивность сильно меняется. Пожалуйста, проверьте ссылку SOF на других ресурсах.

4.CLAHE (адаптивное выравнивание гистограммы с ограничением контраста)

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

Show histogram что это. 79e93f191d30f3f86cc3f103cbb36b70. Show histogram что это фото. Show histogram что это-79e93f191d30f3f86cc3f103cbb36b70. картинка Show histogram что это. картинка 79e93f191d30f3f86cc3f103cbb36b70

После выравнивания гистограммы контраст фона улучшился. Но сравните лицо статуи на двух изображениях. Из-за высокой яркости мы потеряли большую часть информации. Это связано с тем, что его гистограмма не ограничена определенной областью, как мы видели в предыдущем примере (попробуйте нарисовать гистограмму входного изображения, вы получите больше вдохновения).

Поэтому для решения этой проблемы используется адаптивное выравнивание гистограммы. Здесь изображение разделено на небольшие блоки, называемые «плитками» (размер плитки в OpenCV по умолчанию равен 8 * 8). Затем гистограмма каждого из этих блоков выравнивается как обычно. Следовательно, на небольшой площади гистограмма будет ограничена небольшой областью (если нет шума). Если есть шум, он будет усилен. Чтобы этого избежать, применяется предел контрастности. Если какая-либо ячейка гистограммы превышает указанный предел контрастности (по умолчанию 40 в OpenCV), эти пиксели будут обрезаны и равномерно распределены по другим ячейкам перед применением выравнивания гистограммы. После выравнивания, чтобы удалить артефакты на границе тайла, применяется билинейная интерполяция.

В следующем коде показано, как применить CLAHE (адаптивное выравнивание гистограммы с ограничением контраста) в OpenCV.

Show histogram что это. 4c949b44c97151bdcf94f39146cdc9bb. Show histogram что это фото. Show histogram что это-4c949b44c97151bdcf94f39146cdc9bb. картинка Show histogram что это. картинка 4c949b44c97151bdcf94f39146cdc9bb

3. Гистограмма-3: двумерная гистограмма.

Найдите и нарисуйте гистограмму, которая поможет в следующих главах.

В официальном образце уже есть образец Python для поиска гистограммы цвета. Мы попытаемся понять, как создать такую ​​цветную гистограмму, и это будет полезно для понимания других тем, таких как обратная проекция гистограммы.

3. 2D-гистограмма в OpenCV

Для расчета используйте cv2.calcHist (). Для цветовой гистограммы нам нужно преобразовать изображение из BGR в HSV. (Помните, что для одномерных гистограмм мы преобразовали BGR в оттенки серого). Для двухмерной гистограммы ее параметры будут изменены следующим образом:

import cv2

import numpy as np

4. 2D-гистограмма в Numpy

Numpy также предоставляет специальную функцию: np.histogram2d (). (Помните, что для одномерных гистограмм мы используем np.histogram ()).

import cv2

import numpy as np

from matplotlib import pyplot as plt

5. Нарисуйте двухмерную гистограмму.

Метод 1: используйте cv2.imshow ()

В результате мы получаем двумерный массив размером 180 * 256. Таким образом, мы можем отображать их как обычно, как при использовании функции cv2.imshow (). Это будет изображение в оттенках серого, если вы не знаете тональные значения разных цветов, оно не даст слишком много цветов.

Метод 2: используйте matplotlib

Мы можем использовать функцию matplotlib.pyplot.imshow () для рисования двухмерных гистограмм различных цветовых карт. Это позволяет нам лучше понять различные плотности пикселей. Однако это не позволит нам взглянуть на какой-либо цвет в первый раз, если только вы не хотите знать тональные значения разных цветов. Мне до сих пор нравится этот способ, он проще и лучше.

Примечание. При использовании этой функции помните, что флаг интерполяции должен быть ближайшим, чтобы получить лучшие результаты.

import cv2

import numpy as np

from matplotlib import pyplot as plt

Метод 3: образец стиля OpenCV

В примере OpenCV-Python2 есть код для примера цветовой гистограммы. Если вы запустите код, вы увидите, что гистограмма также отображает соответствующий цвет. Или просто выведите гистограмму с цветовой кодировкой. Результаты очень хорошие (хотя нужно добавить еще строк).

В этом коде автор создал цветовую карту в HSV. Затем конвертируйте его в BGR. Полученное изображение гистограммы умножается на цветовую карту. Он также использовал некоторые шаги предварительной обработки, чтобы удалить небольшие изолированные пиксели, что привело к хорошей гистограмме.

4. Гистограмма-4: обратная проекция гистограммы.

Проекция отражения гистограммы обучения

Он был предложен Майклом Дж. Суэйном и Даной Х. Баллард в их статье, индексированной цветными гистограммами.

3. Алгоритм в Numpy

Посмотреть код и комментарии:

4. Проекция отражения в OpenCV

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *