exponenta event banner

lineToBorderPoints

Точки пересечения линий на изображении и границе изображения

Описание

пример

points = lineToBorderPoints(lines,imageSize) вычисляет точки пересечения одной или нескольких линий изображения с рамкой изображения.

Примеры

свернуть все

Загрузка и отображение изображения.

I = imread('rice.png');
figure; 
imshow(I); 
hold on;

Figure contains an axes. The axes contains an object of type image.

Определите линию с уравнением, 2 * x + y - 300 = 0.

aLine = [2,1,-300];

Вычислите точки пересечения отрезка и границы изображения.

points = lineToBorderPoints(aLine,size(I))
points = 1×4

  149.7500    0.5000   21.7500  256.5000

line(points([1,3]),points([2,4]));

Figure contains an axes. The axes contains 2 objects of type image, line.

Входные аргументы

свернуть все

Матрица строк, заданная как матрица M-by-3, где каждая строка должна иметь формат [A, B, C]. Эта матрица соответствует определению строки:

A * x + B * y + C = 0.
M представляет количество строк.

lines должно быть double или single.

Размер изображения, указанный как вектор строки в формате, возвращаемом size функция.

Выходные аргументы

свернуть все

Точки пересечения, возвращаемые в виде матрицы M-by-4. Функция возвращает матрицу в формате [x1, y1, x2, y2]. В этой матрице [x1 y1] и [x2 y2] являются двумя точками пересечения. Когда линия на изображении и граница изображения не пересекаются, функция возвращает [-1,-1,-1,-1].

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

| |

Представлен в R2011a