Пиковое отношение сигнал-шум (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'
указывает, что массив имеет две пространственных размерности и одну размерность канала, подходящую для 2D данных изображения RGB.
Пример: 'SSCB'
указывает, что массив имеет две пространственных размерности, одну размерность канала и одну пакетную размерность, подходящую для последовательности 2D данных изображения RGB.
peaksnr
— PSNRdlarray
объектPSNR в децибелах, возвращенных как одно из этих значений.
Введите тип изображения | Значение PSNR |
---|---|
| Числовой скаляр с одним измерением PSNR. |
| dlarray 1 на 1 объект с одним измерением PSNR. |
| Числовой массив той же размерности как входные изображения. Пространственные размерности и размерности канала peaksnr одноэлементные размерности. Существует одно измерение PSNR для каждого элемента по пакетному измерению. |
| dlarray объект той же размерности как входные изображения. Пространственные размерности и размерности канала peaksnr одноэлементные размерности. Существует одно измерение PSNR для каждого элемента по пакетному измерению. |
Если A
и ref
имейте тип данных single
, затем peaksnr
имеет тип данных single
. В противном случае, peaksnr
имеет тип данных double
.
snr
— Отношение сигнал-шумdlarray
объектОтношение сигнал-шум в децибелах, возвращенных как одно из этих значений.
Введите тип изображения | Значение PSNR |
---|---|
| Числовой скаляр с одним измерением ОСШ. |
| dlarray 1 на 1 объект с одним измерением ОСШ. |
| Числовой массив той же размерности как входные изображения. Пространственные размерности и размерности канала snr одноэлементные размерности. Существует одно измерение ОСШ для каждого элемента по пакетному измерению. |
| dlarray объект той же размерности как входные изображения. Пространственные размерности и размерности канала peaksnr одноэлементные размерности. Существует одно измерение ОСШ для каждого элемента по пакетному измерению. |
Если A
и ref
имейте тип данных single
, затем snr
имеет тип данных single
. В противном случае, snr
имеет тип данных double
.
psnr
функционируйте реализует это уравнение, чтобы вычислить PSNR:
peakval
или задан пользователем или взят из области значений типа данных image. Например, для изображения типа данных uint8
, peakval
255
. MSE является среднеквадратичной погрешностью между A
и ref
.
psnr
поддерживает генерацию кода С (требует MATLAB® Coder™). Для получения дополнительной информации смотрите Генерацию кода для Обработки изображений.
Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите Обработку изображений на графическом процессоре.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.