Jump to content

Оператор Превитта

Оператор Превитта используется при обработке изображений , особенно в алгоритмах обнаружения краев . Технически это дискретный оператор дифференцирования , вычисляющий аппроксимацию градиента функции интенсивности изображения. В каждой точке изображения результатом работы оператора Прюитта является либо соответствующий вектор градиента, либо норма этого вектора. Оператор Превитта основан на свертке изображения с помощью небольшого разделимого целочисленного фильтра в горизонтальном и вертикальном направлениях и поэтому относительно недорог с точки зрения вычислений, таких как Собел и Кайяли. [1] операторы. С другой стороны, градиентная аппроксимация, которую он производит, является относительно грубой, особенно для высокочастотных изменений изображения. Оператор Превитта был разработан Джудит М.С. Превитт . [2]

Упрощенное описание

[ редактировать ]

Проще говоря, оператор вычисляет градиент интенсивности изображения в каждой точке, определяя направление максимально возможного увеличения от светлого к темному и скорость изменения в этом направлении. Таким образом, результат показывает, насколько «резко» или «плавно» изображение меняется в этой точке и, следовательно, насколько вероятно, что часть изображения представляет собой край , а также то, как этот край может быть ориентирован. На практике расчет величины (вероятности края) более надежен и легче интерпретируется, чем расчет направления.

Математически градиент функции двух переменных (здесь функция интенсивности изображения) представляет собой в каждой точке изображения двумерный вектор с компонентами, определяемыми производными в горизонтальном и вертикальном направлениях. В каждой точке изображения вектор градиента указывает в направлении максимально возможного увеличения интенсивности, а длина вектора градиента соответствует скорости изменения в этом направлении. Это означает, что результатом действия оператора Превитта в точке изображения, которая находится в области постоянной интенсивности изображения, является нулевой вектор, а в точке на краю — вектор, указывающий через край, от более темных к более ярким значениям.

Формулировка

[ редактировать ]

Математически оператор использует два ядра 3×3, которые свернуты с исходным изображением для вычисления аппроксимации производных — одно для горизонтальных изменений, а другое для вертикальных. Если мы определим в качестве исходного изображения и и представляют собой два изображения, которые в каждой точке содержат приближения горизонтальной и вертикальной производной, последние вычисляются как:

где здесь обозначает двумерную операцию свертки .

Поскольку ядра Прюитта можно разложить как произведения усреднения и дифференцированияядро, они вычисляют градиент со сглаживанием. Следовательно, это отделяемый фильтр . Например, можно записать как

Координата x определяется здесь как увеличение в направлении «влево», а координата y определяется как увеличение в направлении «вверх». В каждой точке изображения полученные аппроксимации градиента можно объединить, чтобы получить величину градиента, используя:

Используя эту информацию, мы также можем рассчитать направление градиента:

где, например, Θ равно 0 для вертикального края, который темнее с правой стороны.

Изображение кирпичной стены и велосипедной стойки в оттенках серого
Градиент с оператором Превитта изображения кирпичной стены и велосипедной стойки в оттенках серого


Пример кода

[ редактировать ]
% MATLAB Code | Prewitt Operator from Scratch % Read Input Image input_image = imread('[name of input image file].[file format]'); % Displaying Input Image input_image = uint8(input_image); figure, imshow(input_image); title('Input Image'); % Convert the truecolor RGB image to the grayscale image input_image = rgb2gray(input_image); % Convert the image to double input_image = double(input_image); % Pre-allocate the filtered_image matrix with zeros filtered_image = zeros(size(input_image)); % Prewitt Operator Mask Mx = [-1 0 1; -1 0 1; -1 0 1]; My = [-1 -1 -1; 0 0 0; 1 1 1]; % Edge Detection Process % When i = 1 and j = 1, then filtered_image pixel % position will be filtered_image(2, 2) % The mask is of 3x3, so we need to traverse % to filtered_image(size(input_image, 1) - 2 %, size(input_image, 2) - 2) % Thus we are not considering the borders. for i = 1:size(input_image, 1) - 2 	for j = 1:size(input_image, 2) - 2 		% Gradient approximations 		Gx = sum(sum(Mx.*input_image(i:i+2, j:j+2))); 		Gy = sum(sum(My.*input_image(i:i+2, j:j+2))); 						% Calculate magnitude of vector 		filtered_image(i+1, j+1) = sqrt(Gx.^2 + Gy.^2); 			endend% Displaying Filtered Image filtered_image = uint8(filtered_image); figure, imshow(filtered_image); title('Filtered Image'); % Define a threshold value thresholdValue = 100; % varies between [0 255] output_image = max(filtered_image, thresholdValue); output_image(output_image == round(thresholdValue)) = 0; % Displaying Output Image output_image = im2bw(output_image); figure, imshow(output_image); title('Edge Detected Image');

См. также

[ редактировать ]
  1. ^ Дим, Жюль Р.; Такамура, Тамио (11 декабря 2013 г.). «Альтернативный подход к классификации спутниковых облаков: применение краевого градиента» . Достижения метеорологии . 2013 : 1–8. дои : 10.1155/2013/584816 . ISSN   1687-9309 .
  2. ^ Превитт, JMS (1970). «Улучшение и извлечение объектов». Обработка изображений и психопикторика . Академическая пресса.

[1]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f5981ae5ca5d516eb924a9478176565f__1715192400
URL1:https://arc.ask3.ru/arc/aa/f5/5f/f5981ae5ca5d516eb924a9478176565f.html
Заголовок, (Title) документа по адресу, URL1:
Prewitt operator - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)