Алгоритм интерполяции ближайших соседей в MATLAB
Интерполяция ближайшего соседа — это тип интерполяции. Этот метод просто определяет «ближайший» соседний пиксель и предполагает значение его интенсивности, в отличие от вычисления среднего значения с использованием некоторых взвешивающих критериев или получения промежуточного значения на основе сложных правил.
Интерполяция:
Метод добавления новых точек данных в диапазоне набора известных точек данных называется интерполяцией. Интерполяцию можно использовать для заполнения пробелов в данных, сглаживания данных, прогнозирования и многого другого. Методы для точек данных на сетке и разбросанных точек данных - это два подмножества интерполяции в MATLAB.
Процесс интерполяции включает в себя определение неизвестных значений, лежащих между известными точками данных. Для любых географически связанных точек данных, таких как уровень шума, осадки, высота над уровнем моря и т. д., он в основном используется для прогнозирования неизвестных значений.
Алгоритм бинарного поиска дополнен алгоритмом интерполяционного поиска.
Метод интерполяции ближайшего соседа:
Самый простой метод — интерполяция округления (также известная как интерполяция ближайшего соседа), которая просто находит ближайшее значение данных в целочисленной позиции путем округления ожидаемого значения позиции.
Алгоритм ближайшего соседа:
Алгоритм k-ближайшего соседа, также называемый KNN или k-NN, представляет собой классификатор обучения с учителем, который использует близость для классификации или прогнозирования группировки одной точки данных. Хотя его можно применять к задачам классификации или регрессии, его обычно используют в качестве алгоритма классификации, поскольку он основан на идее о том, что похожие точки можно найти близко друг к другу.
Значения пикселей, присутствующие во входном векторе или матрице, повторно дискретизируются с использованием этого метода, который является самым простым. Интерполяция изображений в MATLAB выполняется с помощью функции imresize.
Синтаксис:
knn = nearest neighbor(I)
knn = nearest neighbor(I,Name,Value)
[knn,SI] = nearest neighbor(___)
- knn- Из изображения I алгоритм ближайшего соседа генерирует интерполяцию ближайшего соседа.
- knn — в зависимости от значений необязательных аргументов пары «имя-значение» ближайший сосед (I, имя, значение) возвращает одну или несколько матриц алгоритма ближайшего соседа.
- [knn,SI] - Масштабированное изображение SI, используемое для вычисления матрицы алгоритма ближайшего соседа, возвращается методом интерполяции ближайшего соседа.
Пример 1:
Matlab
% MATLAB CODE for READ AN INPUT IMAGE X=imread( "image.tif" ); % SET THE SIZE OF THE RESAMPLE Col = 256; Row = 256; % contrast the new size with the previous size. rtR = Row/size(X,1); rtC = Col/size(X,2); %CARRY OUT THE INTERPOLATED POSITIONS IR = cell ([1:(size(X,1)*rtR)]./(rtR)); IC = cell ([1:(size(X,2)*rtC)]./(rtC)); %WISE ROW INTERPOLATION Y = X(IR); %WISE INTERPOLATION BY COLUMN Y = Y(IC); figure,subplot(101),imshow(X); title( "BEFORE INTERPOLATION" ); axis([0,256,0,256]);axis on; subplot(111),imshow(Y); title( "AFTER INTERPOLATION" ); axis([0,256,0,256]);axis on; |
Выход:
Пример 2:
Matlab
% MATLAB CODE FOR READ AN INPUT IMAGE X=imread( "GEEKSFORGEEKS.tif" ); % SET THE SIZE OF THE RESAMPLE Col = 256; Row = 256; % Contrast the new size with the previous size. rtR = Row/size(X,1); rtC = Col/size(X,2); % CARRY OUT THE INTERPOLATED POSITIONS IR = cell ([1:(size(X,1)*rtR)]./(rtR)); IC = cell ([1:(size(X,2)*rtC)]./(rtC)); % WISE ROW INTERPOLATION Y = X(IR); % WISE INTERPOLATION BY COLUMN Y = Y(IC); figure,subplot(101),imshow(X); title( "BEFORE INTERPOLATION" ); axis([0,256,0,256]);axis on; subplot(111),imshow(Y); title( "AFTER INTERPOLATION" ); axis([0,256,0,256]);axis on; |
Выход: