Intersection points of lines in image and image border


  • points = lineToBorderPoints(lines,imageSize)


points = lineToBorderPoints(lines,imageSize) computes the intersection points between one or more lines in an image with the image border.

Code Generation Support:
Compile-time constant input: No restrictions
Supports MATLAB Function block: Yes
Code Generation Support, Usage Notes, and Limitations

Input Arguments


Line matrix. An M-by-3 matrix, where each row must be in the format, [A,B,C]. This matrix corresponds to the definition of the line:

A * x + B * y + C = 0.

M represents the number of lines.

lines must be double or single.


Image size. This input must be in the format returned by the size function.

imageSize must be double, single, or integer.

Output Arguments


Output intersection points. An M-by-4 matrix. The function returns the matrix in the format of [x1, y1, x2, y2]. In this matrix, [x1 y1] and [x2 y2] are the two intersection points. When a line in the image and the image border do not intersect, the function returns [-1,-1,-1,-1].


Find the intersection points of a line in an image and the image border.

% Load and display an image.
  I = imread('rice.png');
  figure; imshow(I); hold on;

% Define a line: 2 * x + y - 300 = 0
  aLine = [2,1,-300];

% Compute the intersection points of the line and the image border.
  points = lineToBorderPoints(aLine, size(I));
  line(points([1,3]), points([2,4]));

Introduced in R2011a

Was this topic helpful?