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