MATLAB Language                
            Обработка изображения
        
        
            
    Поиск…
Основные изображения ввода / вывода
>> img = imread('football.jpg');
 Используйте imread для чтения файлов изображений в матрицу в MATLAB. 
 Как только вы imread изображение, оно хранится в памяти как ND-массив: 
>> size(img)
ans =
 256   320     3
 Изображение 'football.jpg' имеет 256 строк и 320 столбцов и имеет 3 цветовых канала: красный, зеленый и синий. 
Теперь вы можете отразить это:
>> mirrored = img(:, end:-1:1, :);  %// like mirroring any ND-array in Matlab
 И, наконец, напишите это как изображение, используя imwrite : 
>> imwrite(mirrored, 'mirrored_football.jpg');
Извлечение изображений из Интернета
Пока у вас есть подключение к Интернету, вы можете читать изображения из гиперссылки
I=imread('https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo.png');
Фильтрация с использованием 2D FFT
Как и для сигналов 1D, можно фильтровать изображения, применяя преобразование Фурье, умножая его на фильтр в частотной области и преобразовывая обратно в пространственную область. Вот как вы можете применять фильтры с высоким или низким пропусканием к изображению с помощью Matlab:
 Пусть image будет оригинальным, нефильтрованное изображение, вот как вычислить его 2D FFT: 
ft = fftshift(fft2(image));
 Теперь, чтобы исключить часть спектра, нужно установить его значения пикселей равными 0. Пространственная частота, содержащаяся в исходном изображении, отображается от центра к краям (после использования fftshift ). Чтобы исключить низкие частоты, мы установим центральную круговую область на 0. 
 Вот как создать двоичную маску в форме диска с радиусом D используя встроенную функцию: 
[x y ~] = size(ft);
D = 20;
mask = fspecial('disk', D) == 0;
mask = imresize(padarray(mask, [floor((x/2)-D) floor((y/2)-D)], 1, 'both'), [x y]);
Маскирование изображения частотной области может быть выполнено путем умножения точки БПФ на двоичную маску, полученную выше:
masked_ft = ft .* mask;
Теперь давайте вычислим обратный БПФ:
filtered_image = ifft2(ifftshift(masked_ft), 'symmetric');
Высокими частотами изображения являются острые края, поэтому этот фильтр верхних частот может использоваться для резкости изображений.
Фильтрация изображений
 Допустим, у вас есть изображение rgbImg , например, чтение с использованием imread . 
>> rgbImg = imread('pears.png');
>> figure, imshow(rgbImg), title('Original Image')
 Используйте fspecial для создания 2D-фильтра: 
>> h = fspecial('disk', 7);
>> figure, imshow(h, []), title('Filter')
 Используйте imfilter чтобы применить фильтр к изображению: 
>> filteredRgbImg = imfilter(rgbImg, h);
>> figure, imshow(filteredRgbImg), title('Filtered Image')
Измерение свойств подключенных регионов
 Начиная с бинарного изображения, bwImg , который содержит несколько связанных объектов. 
>> bwImg = imread('blobs.png');
>> figure, imshow(bwImg), title('Binary Image')
 Чтобы измерить свойства (например, область, центр и т. Д.) regionprops объекта на изображении, используйте regionprops : 
>> stats = regionprops(bwImg, 'Area', 'Centroid');
 stats - это массив структур, который содержит структуру для каждого объекта изображения. Доступ к измеренному свойству объекта прост. Например, чтобы отобразить область первого объекта, просто, 
>> stats(1).Area
ans =
    35
Визуализируйте центроиды объектов, наложив их на исходное изображение.
>> figure, imshow(bwImg), title('Binary Image With Centroids Overlaid')
>> hold on
>> for i = 1:size(stats)
scatter(stats(i).Centroid(1), stats(i).Centroid(2), 'filled');
end




