imhist

Гистограмма данных изображения

Синтаксис

[counts,binLocations] = imhist(I)
[counts,binLocations] = imhist(I,n)
[counts,binLocations] = imhist(X,map)
imhist(___)

Описание

пример

[counts,binLocations] = imhist(I) вычисляет гистограмму для полутонового изображения I. Функция imhist возвращает количества гистограммы в counts и местоположения интервала в binLocations. Количество интервалов в гистограмме определяется типом изображения.

Опционально можно вычислить количества гистограммы, и местоположения интервала с помощью графического процессора (требует Parallel Computing Toolbox™). Для получения дополнительной информации смотрите Обработку изображений на графическом процессоре.

[counts,binLocations] = imhist(I,n) указывает, что количество интервалов, n, раньше вычисляло гистограмму.

[counts,binLocations] = imhist(X,map) вычисляет гистограмму для индексируемого изображения X с палитрой map. Гистограмма имеет один интервал для каждой записи в палитре.

Этот синтаксис не поддержан на графическом процессоре.

пример

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

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

Примеры

свернуть все

Считайте полутоновое изображение в рабочую область.

I = imread('pout.tif');

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

imhist(I)

Загрузите 3-D набор данных.

load mristack

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

imhist(mristack)

Создайте массив класса uint16.

I = gpuArray(imread('pout.tif'));

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

[counts,x] = imhist(I);
stem(x,counts);

Входные параметры

свернуть все

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

Чтобы вычислить количества гистограммы и местоположения интервала с помощью графического процессора, задайте I как gpuArray, который содержит числовой массив.

Пример: I = imread('cameraman.tif');

Пример: I = gpuArray(imread('cameraman.tif'));

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Количество интервалов, заданных в виде числа. Если I является полутоновым изображением, то imhist использует значение по умолчанию 256 интервалов. Если I является двухуровневым изображением, то imhist использует два интервала.

Пример: [counts,x] = imhist(I,50);

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Пример: [X,map] = imread('trees.tif');

Типы данных: single | double | uint8 | uint16 | logical

Палитра сопоставила с индексируемым изображением X, заданный как c-by-3 матрица. Палитра должна быть, по крайней мере, пока самый большой индекс в X.

Пример: [X,map] = imread('trees.tif');

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Выходные аргументы

свернуть все

Количества гистограммы, возвращенные как числовой массив. Если гистограмма вычисляется для индексируемого изображения, X, то длина counts совпадает с длиной палитры, map.

Если гистограмма вычисляется с помощью графического процессора, то counts возвращен как gpuArray, содержащий числовой массив.

Местоположения интервала, возвращенные как числовой массив.

Если гистограмма вычисляется с помощью графического процессора, то binLocations возвращен как gpuArray, содержащий числовой массив.

Советы

  • Для полутоновых изображений интервалы n гистограммы - каждый полуоткрытые интервалы ширины A / (n −1). В частности, p th интервал является полуоткрытым интервалом

    A(p1.5)(n1)Bx<A(p0.5)(n1)B,

    где x является значением интенсивности. Масштабный коэффициент A и смещение B зависит от типа класса изображений можно следующим образом:

     'double'единственныйint8int16int32uint8uint16uint32логический
    A112556553542949672952556553542949672951
    B001283276821474836480000

  • Чтобы отобразить гистограмму от counts и binLocations, используйте команду stem(binLocations,counts).

Расширенные возможности

Смотрите также

| |

Представлено до R2006a