Отношение пикового сигнала к шуму (PSNR)
также задает метки размерностей, peaksnr
= psnr(___,'DataFormat',dataFormat
)dataFormat
, данных неформатированного изображения. Этот синтаксис используется для возврата отдельного PSNR для каждого элемента в размерности.
Прочтите изображение и создайте копию с добавленным шумом. Оригинальное изображение является ссылкой изображением.
ref = imread('pout.tif'); A = imnoise(ref,'salt & pepper', 0.02);
Вычислите PSNR.
[peaksnr, snr] = psnr(A, ref);
fprintf('\n The Peak-SNR value is %0.4f', peaksnr);
The Peak-SNR value is 22.6437
fprintf('\n The SNR value is %0.4f \n', snr);
The SNR value is 15.5524
dlarray
ВходПрочтите изображение в рабочую область, затем создайте неформатированный dlarray
объект с данными изображения.
ref = imread("strawberries.jpg");
ref = im2single(ref);
dlref = dlarray(ref);
Добавьте соль и перец шум к изображению, затем создайте неформатированный dlarray
объект с данными зашумленного изображения.
noisy = imnoise(ref,'salt & pepper');
dlnoisy = dlarray(noisy);
Вычислите пиковые ОСШ и ОСШ зашумленных данных относительно исходных данных.
[peaksnr,snr] = psnr(dlnoisy,dlref)
peaksnr = 1x1 single dlarray 17.5941
snr = 1x1 single dlarray 11.1265
Чтение ссылки изображения в рабочую область.
ref = imread("office_1.jpg");
Предварительно выделите два массива, которые хранят последовательность из шести изображений размера опорного изображения.
numFrames = 6; imsOriginal = zeros([size(ref) numFrames],class(ref)); imsNoisy = zeros([size(ref) numFrames],class(ref));
Чтение и добавление изображений к предварительно выделенным массивам. Один массив хранит данные оригинальные изображения. Второй массив хранит данные изображения с добавлением соли и перца шума.
for p = 1:numFrames filename = strcat("office_",num2str(p),".jpg"); im = imread(filename); imsOriginal(:,:,:,p) = im; imsNoisy(:,:,:,p) = imnoise(im,"salt & pepper"); end
Отобразите последовательности изображений в монтаже. Первая строка показывает последовательность с оригинальным изображением данными. Вторая строка показывает последовательность с данными шумного изображения.
montage(cat(4,imsOriginal,imsNoisy),"Size",[2 numFrames])
Вычислите пик PSNR каждого шумного изображения относительно соответствующего первозданного изображения путем определения формата данных входных решеток как 'SSCB' (пространственный, пространственный, канал, пакет).
peak_psnrs = psnr(imsNoisy,imsOriginal,"DataFormat","SSCB"); peak_psnrs = squeeze(peak_psnrs)
peak_psnrs = 6×1
16.3560
16.9698
17.8079
18.1843
18.0656
17.1682
A
- Анализируемое изображениеdlarray
объектИзображение, которое будет проанализировано, заданное как числовой массив любой размерности или dlarray
(Deep Learning Toolbox) объект.
Типы данных: single
| double
| int16
| uint8
| uint16
peakval
- Пиковый уровень сигналаПиковый уровень сигнала, заданный как неотрицательное число. Если не задано, значение по умолчанию для peakval
зависит от класса A
и ref
.
Если изображения имеют тип данных double
или single
, затем psnr
принимает, что данные изображения находятся в области значений [0, 1]. Значение по умолчанию peakval
является 1
.
Если изображения имеют целочисленные типы данных, то значение по умолчанию peakval
- самое большое значение, разрешенное областью значений классов. Для uint8
данные, значение по умолчанию peakval
является 255
. Для uint16
или int16
, по умолчанию является 65535
.
dataFormat
- РазмерностиРазмерные метки входных изображений A
и ref
, заданный как строковый скаляр или вектор символов. Каждый символ в dataFormat
должна быть одной из следующих меток:
S
- Пространственный
C
- Канал
B
- Пакетные наблюдения
Формат не может включать более одной метки канала или пакетной метки. Не задавайте 'dataFormat
'аргумент, когда входные изображения форматированы dlarray
объекты.
Пример: 'SSC'
указывает, что массив имеет две пространственные размерности и одну размерность канала, подходящих для 2-D данных изображения RGB.
Пример: 'SSCB'
указывает, что массив имеет две пространственные размерности, один размер канала и один размер пакета, соответствующий последовательности 2-D данных изображения RGB.
peaksnr
- PSNRdlarray
объектPSNR в децибелах, возвращенный как одно из следующих значений.
Введите тип изображения | Значение PSNR |
---|---|
| Числовой скаляр с одним измерением PSNR. |
Неформатированные | 1 на 1 dlarray объект с одним измерением PSNR. |
Числовые массивы с пакетной размерностью, заданным с помощью dataFormat аргумент | Числовой массив той же размерности, что и входные изображения. Пространственные и канальные размерности peaksnr являются синглтонными размерностями. Существует одно измерение PSNR для каждого элемента вдоль размерности партии |
| dlarray объект той же размерности, что и входные изображения. Пространственные и канальные размерности peaksnr являются синглтонными размерностями. Существует одно измерение PSNR для каждого элемента вдоль размерности партии. |
Если A
и ref
иметь тип данных single
, затем peaksnr
имеет тип данных single
. В противном случае peaksnr
имеет тип данных double
.
snr
- Отношение сигнал/шумdlarray
объектОтношение сигнал/шум в децибелах, возвращаемое как одно из следующих значений.
Введите тип изображения | Значение PSNR |
---|---|
| Числовой скаляр с одним измерением ОСШ. |
Неформатированные | 1 на 1 dlarray объект с одним измерением ОСШ. |
Числовые массивы с пакетной размерностью, заданным с помощью dataFormat аргумент | Числовой массив той же размерности, что и входные изображения. Пространственные и канальные размерности snr являются синглтонными размерностями. Существует одно измерение ОСШ для каждого элемента вдоль размерности партии |
| dlarray объект той же размерности, что и входные изображения. Пространственные и канальные размерности peaksnr являются синглтонными размерностями. Существует одно измерение ОСШ для каждого элемента по размерности партии. |
Если A
и ref
иметь тип данных single
, затем snr
имеет тип данных single
. В противном случае snr
имеет тип данных double
.
psnr
функция реализует это уравнение, чтобы вычислить PSNR:
peakval
задается пользователем или берётся из области значений типа данных изображения. Для примера - изображение типа данных uint8
, а peakval
является 255
. MSE - средняя квадратная ошибка между A
и ref
.
Указания и ограничения по применению:
psnr
поддерживает генерацию Кода С (требует MATLAB® Coder™). Для получения дополнительной информации смотрите Генерация кода для обработки изображений.
Эта функция полностью поддерживает массивы GPU. Для получения дополнительной информации смотрите Обработка изображений на графическом процессоре.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.