2012-04-04 3 views
0

Как определить края изображения без использования метода 'edge', используя только математические операции (матрица или Derived или div или любой другой)? Действительно, как я могу переписать функцию edge с помощью алгоритма Canny или sobel или любого другого?найти край на изображении

Например:

enter image description here

розовый прямоугольник 256 * 256 черный прямоугольник 127 * 127

Ответ: Canny Tutorial

+0

Почему вы хотите переписать его, когда вполне полезная функция уже существует? Вы хотите каким-то образом настроить «edge»? Вы можете использовать как canny, так и sobel алгоритмы с 'edge'. –

ответ

2

Вы утверждаете, что вы хотите использовать Осторожные, Собел или другой алгоритм. Они могут использоваться как в краю. Попробуйте, например:

BW = edge(I,'canny'); 

где я - ваша матрица изображений. Если вы заинтересованы в поиске, как edge работы, типа

edit edge 

в окне командной строки. Затем вы сможете увидеть собственную реализацию MATLAB.

Возможно, вы захотите переопределить edge с нуля, чтобы получить хорошее представление о том, как работают алгоритмы обработки изображений. Если да, то я бы направить вас к следующим источникам:

Для вашего конкретного примера с прямоугольниками вполне можно использовать edge, чтобы найти края. Один трюк, который вам нужно сделать, - преобразовать изображение rgb в оттенки серого, используя rgb2gray. Попробуйте, например:

rgb_image = imread('iarLe.png'); 
gray_image = rgb2gray(rgb_image); 
edge_image = edge(gray_image); 
imshow(edge_image); 

enter image description here

+0

http://www.cs.ucf.edu/~mikel/Research/Edge_Detection.htm – 0x90

+0

нет, с использованием метода use'edge и только с плюсом, минусом, div, sqrt, ... – user1263390

+0

Вы по-прежнему являетесь " t объяснил, почему вы хотите, чтобы кто-то другой помог вам сделать это, когда в MATLAB уже есть очень хорошо реализованная версия с исходным кодом. Зачем вам нужна новая версия 'edge'? –

Смежные вопросы