Пиковое отношение сигнал-шум (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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.