Вы утверждаете, что вы хотите использовать Осторожные, Собел или другой алгоритм. Они могут использоваться как в краю. Попробуйте, например:
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);
Почему вы хотите переписать его, когда вполне полезная функция уже существует? Вы хотите каким-то образом настроить «edge»? Вы можете использовать как canny, так и sobel алгоритмы с 'edge'. –