Good day everyone,
I have 2 lines on an image. These 2 lines intersect each other. I would like to find the pixel location at which they intersect. The solution I'm thinking about is to using improfile function , so that I can get the pixel lists for the 2 lines and find the intersecting values.
Is there any other more efficient way I can do this besides the search method I'm thinking about doing ?
Please let me know your suggestions.
Kurt
|
|
0
|
|
|
|
Reply
|
audley
|
2/22/2011 6:33:23 PM |
|
"audley james" <audleyer@gmail.com> wrote in message <ik0vhj$3in$1@fred.mathworks.com>...
> Good day everyone,
>
> I have 2 lines on an image. These 2 lines intersect each other. I would like to find the pixel location at which they intersect. The solution I'm thinking about is to using improfile function , so that I can get the pixel lists for the 2 lines and find the intersecting values.
>
> Is there any other more efficient way I can do this besides the search method I'm thinking about doing ?
>
> Please let me know your suggestions.
>
> Kurt
put the two lines in the format y-mx=b and solve the system
example 1*y-(-1)*x=1 and 1*y+0*x=2
b=[1 2]'
a=[1 -1; 1 0]
a\b
The result is the point where they intersect, x and y
|
|
0
|
|
|
|
Reply
|
paulojmdsilva (31)
|
2/22/2011 6:48:04 PM
|
|
"audley james" <audleyer@gmail.com> wrote in message <ik0vhj$3in$1@fred.mathworks.com>...
> Good day everyone,
>
> I have 2 lines on an image. These 2 lines intersect each other. I would like to find the pixel location at which they intersect. The solution I'm thinking about is to using improfile function , so that I can get the pixel lists for the 2 lines and find the intersecting values.
>
> Is there any other more efficient way I can do this besides the search method I'm thinking about doing ?
>
> Please let me know your suggestions.
doc bwmorph
|
|
0
|
|
|
|
Reply
|
sean.dewolski1 (106)
|
2/22/2011 6:49:05 PM
|
|
ans=
2
1
The first value is the value of the first variable, in the example I used y first so the y is 2 and the x is 1.
|
|
0
|
|
|
|
Reply
|
Paulo
|
2/22/2011 6:55:15 PM
|
|
Paulo,
thanks.
Please pardon my ignorance. Can you please let me exactly how is this done?
I have 2 intersecting image lines in the endpoint form [x1 y1 x2 y2]:
line1 ---> [93 388 120 354]
line2 ---> [ 102 355 124 377]
Can you please show me an example using these coordinates ? Sorry for this
--kurt james
|
|
0
|
|
|
|
Reply
|
audley
|
2/22/2011 7:00:25 PM
|
|
"Paulo Silva" wrote in message <ik10d4$mkl$1@fred.mathworks.com>...
> "audley james" <audleyer@gmail.com> wrote in message <ik0vhj$3in$1@fred.mathworks.com>...
> > Good day everyone,
> >
> > I have 2 lines on an image. These 2 lines intersect each other. I would like to find the pixel location at which they intersect. The solution I'm thinking about is to using improfile function , so that I can get the pixel lists for the 2 lines and find the intersecting values.
> >
> > Is there any other more efficient way I can do this besides the search method I'm thinking about doing ?
> >
> > Please let me know your suggestions.
> >
> > Kurt
>
> put the two lines in the format y-mx=b and solve the system
>
> example 1*y-(-1)*x=1 and 1*y+0*x=2
>
> b=[1 2]'
> a=[1 -1; 1 0]
> a\b
>
> The result is the point where they intersect, x and y
This is much more work and makes the blind assumption that the lines are indeed first order. Don't do it!
|
|
0
|
|
|
|
Reply
|
Sean
|
2/22/2011 7:05:08 PM
|
|
Sean,
can you suggest , the possible operation in bwmorph, I should use ?
-james
|
|
0
|
|
|
|
Reply
|
audley
|
2/22/2011 7:06:05 PM
|
|
On Feb 22, 2:06=A0pm, "audley james" <audle...@gmail.com> wrote:
> Sean,
>
> can you suggest , the possible operation in bwmorph, I should use ?
>
> -james
-----------------------------------------------------------------------
james:
There's a branchpoints option to bwmorph. But this depends on your
image being a binary image. We don't know what you have (a binary
image, gray scale image, or color image), nor do we know what you have
defined as lines. Are the lines something you plotted in the
overlay? Are they graphics in the image (connected pixels of 255) or
are they just some gray level edge, like you have an image of a car
and want to know where the vertical door seam meets the horizontal
window bottom line. Please post your image somewhere
(uploadhouse.com) so we can stop guessing.
ImageAnalyst
|
|
0
|
|
|
|
Reply
|
ImageAnalyst
|
2/22/2011 8:03:38 PM
|
|
For the data provided here's the script and solution
clf
hold on
l1=[93 388 120 354]
l2=[102 355 124 377]
line([l1(1) l1(3)],[l1(2) l1(4)])
line([l2(1) l2(3)],[l2(2) l2(4)])
ml1=(l1(4)-l1(2))/(l1(3)-l1(1))
ml2=(l2(4)-l2(2))/(l2(3)-l2(1))
bl1=l1(2)-ml1*l1(1)
bl2=l2(2)-ml2*l2(1)
b=[bl1 bl2]'
a=[1 -ml1; 1 -ml2]
Pint=a\b
plot(Pint(2),Pint(1),'ro')
%The point of intersection has the coordinates:
%x=364.5902
%y=111.5902
|
|
0
|
|
|
|
Reply
|
Paulo
|
2/22/2011 8:10:20 PM
|
|
"Sean de " <sean.dewolski@nospamplease.umit.maine.edu> wrote in message <ik11d4$rii$1@fred.mathworks.com>...
> "Paulo Silva" wrote in message <ik10d4$mkl$1@fred.mathworks.com>...
> > "audley james" <audleyer@gmail.com> wrote in message <ik0vhj$3in$1@fred.mathworks.com>...
> > > Good day everyone,
> > >
> > > I have 2 lines on an image. These 2 lines intersect each other. I would like to find the pixel location at which they intersect. The solution I'm thinking about is to using improfile function , so that I can get the pixel lists for the 2 lines and find the intersecting values.
> > >
> > > Is there any other more efficient way I can do this besides the search method I'm thinking about doing ?
> > >
> > > Please let me know your suggestions.
> > >
> > > Kurt
> >
> > put the two lines in the format y-mx=b and solve the system
> >
> > example 1*y-(-1)*x=1 and 1*y+0*x=2
> >
> > b=[1 2]'
> > a=[1 -1; 1 0]
> > a\b
> >
> > The result is the point where they intersect, x and y
>
> This is much more work and makes the blind assumption that the lines are indeed first order. Don't do it!
They are, see the data provided in a reply above.
|
|
0
|
|
|
|
Reply
|
Paulo
|
2/22/2011 8:12:03 PM
|
|
ImageAnalyst,
here is my image :
http://www.uploadhouse.com/viewfile.php?id=8151866&PHPSESSID=7d81cf17d064bcb54b8c959a0a20b551
the 2 intersecting lines in endpoint form [x1 y1 x2 y2] are:
[216 135 286 132]
[257 118 256 166]
thanks
|
|
0
|
|
|
|
Reply
|
audley
|
2/22/2011 8:19:04 PM
|
|
On Feb 22, 3:19=A0pm, "audley james" <audle...@gmail.com> wrote:
> ImageAnalyst,
>
> here is my image :http://www.uploadhouse.com/viewfile.php?id=3D8151866&PH=
PSESSID=3D7d81cf17...
>
> the 2 intersecting lines in endpoint form [x1 y1 x2 y2] are:
>
> [216 =A0135 =A0286 =A0132]
> [257 118 =A0256 =A0166]
>
> thanks
---------------------------------------------------------------------------=
------
Your color image has dozens of "lines" but it sounds like you somehow
found them and you have the endpoints for each line segment. I don't
know *how* you found them, but you did. So in that case, just do what
someone else suggested. Use regular algebra to find the
intersections Get the equations for each line
y1 =3D slope1 * x + offset1
y2 =3D slope2 * x + offset2
Then set y1 =3D to y2 and solve for x
slope1 * x + offset1 =3D slope2 * x + offset2
(slope1-slope2) x =3D (offset2 - offset1)
so x =3D (offset2 - offset1) / (slope1-slope2)
and the y value at the intersection =3D slope1 * x + offset1
|
|
0
|
|
|
|
Reply
|
ImageAnalyst
|
2/22/2011 8:39:34 PM
|
|
I made a function with the code I wrote above (plus a few more lines) that finds the intersection points and submitted it into the File Exchange, will be available soon. I hope someone might find it useful.
|
|
0
|
|
|
|
Reply
|
Paulo
|
2/22/2011 11:53:04 PM
|
|
Paulo,
Can you please send me an email for the function
thanks alot.
james
|
|
0
|
|
|
|
Reply
|
audley
|
2/23/2011 7:08:04 AM
|
|
Here is a ready-in-the-can tool
http://www.mathworks.com/matlabcentral/fileexchange/27673-2d-polygon-edges-intersection
P1 = [93 120; 388 354]
P2 = [102 124; 355 377]
X = polyxpoly(P1,P2) % FEX
figure
plot(P1(1,:),P1(2,:))
hold on
plot(P2(1,:),P2(2,:))
plot(X(1,:),X(2,:),'or')
% Bruno
|
|
0
|
|
|
|
Reply
|
Bruno
|
2/23/2011 7:43:04 AM
|
|
Bruno,
if 2 lines do not reach each other, that is, I mean touch each other , then no intersection point is computed?
|
|
0
|
|
|
|
Reply
|
audley
|
2/23/2011 8:02:18 AM
|
|
"audley james" <audleyer@gmail.com> wrote in message <ik2eua$gh4$1@fred.mathworks.com>...
> Bruno,
>
> if 2 lines do not reach each other, that is, I mean touch each other , then no intersection point is computed?
Correct.
Bruno
|
|
0
|
|
|
|
Reply
|
Bruno
|
2/23/2011 8:07:05 AM
|
|
This is good work Bruno. Its what i actually was trying to do. Can you suggest to me to the location of the Matlab script line number where you enforce this constraint of when lines don't meet so that no intersection is computed.
all the best,
james
|
|
0
|
|
|
|
Reply
|
audleyer (8)
|
2/23/2011 8:17:18 AM
|
|
"audley james" <audleyer@gmail.com> wrote in message <ik2fqe$jvu$1@fred.mathworks.com>...
> This is good work Bruno. Its what i actually was trying to do. Can you suggest to me to the location of the Matlab script line number where you enforce this constraint of when lines don't meet so that no intersection is computed.
line #76 and line #87. Right after those lines, insert the commands
ind(:) = true;
to ignore intersection check.
Bruno
|
|
0
|
|
|
|
Reply
|
Bruno
|
2/23/2011 8:33:04 AM
|
|
On Feb 22, 7:33=A0pm, "audley james" <audle...@gmail.com> wrote:
> Good day everyone,
>
> I have 2 lines on an image. These 2 lines intersect each other. I would l=
ike to find the pixel location at which they intersect. The solution I'm th=
inking about is to using improfile function , so that I can get the pixel l=
ists for the 2 lines and find the intersecting values.
>
> Is there any other more efficient way I can do this besides the search me=
thod I'm thinking about doing ?
The question is ill posed.
Consider the chess board, and the diagonal A1 - H8:
Q1) In what square (pixel) does the diagonal B8 - H2
intersect with A1 - H8?
A1) In E5, which belongs to both diagonals.
------
Q2) In which square (pixel) does the diagonal A8 - H1
intersect with A1 - H8?
A2) It doesn't. There are no squares (pixels) on the
chess board that belongs to both diagonals.
Rune
|
|
0
|
|
|
|
Reply
|
Rune
|
2/23/2011 8:41:06 AM
|
|
"audley james" <audleyer@gmail.com> wrote in message <ik2bok$so0$1@fred.mathworks.com>...
> Paulo,
>
> Can you please send me an email for the function
>
> thanks alot.
> james
http://www.mathworks.com/matlabcentral/fileexchange/30502
|
|
0
|
|
|
|
Reply
|
Paulo
|
2/23/2011 3:22:20 PM
|
|
|
20 Replies
229 Views
(page loaded in 0.214 seconds)
Similiar Articles: intersecting pixel of 2 lines - comp.soft-sys.matlabGood day everyone, I have 2 lines on an image. These 2 lines intersect each other. I would like to find the pixel location at which they intersect.... intersection of line and polygon - comp.soft-sys.matlabintersecting pixel of 2 lines - comp.soft-sys.matlab intersection of line and polygon - comp.soft-sys.matlab... am using the command 'polyxpoly' to find the intersection ... angle between 2 lines on image - comp.soft-sys.matlabintersecting pixel of 2 lines - comp.soft-sys.matlab Good day everyone, I have 2 lines on an image. These 2 lines intersect each other. I would like to find the pixel ... how to plot line between any two pixels? - comp.soft-sys.matlab ...intersecting pixel of 2 lines - comp.soft-sys.matlab finding point position of a black pixels in a binary image - comp ... how can i find the location of any of those ... How to scan all pixels of a line in openGL - comp.graphics.api ...intersecting pixel of 2 lines - comp.soft-sys.matlab How to scan all pixels of a line in openGL - comp.graphics.api ... What is the best way to scan every pixel of this ... Finding the intersection of two data plots - comp.soft-sys.matlab ...intersecting pixel of 2 lines - comp.soft-sys.matlab > > > > Kurt > > put the two lines in ... 1 -ml1; 1 -ml2] Pint=a\b plot(Pint(2),Pint(1),'ro') %The point of ... Tessellation of irregular shapes - comp.soft-sys.matlabintersecting pixel of 2 lines - comp.soft-sys.matlab Tessellation of irregular shapes - comp.soft-sys.matlab... that should be placed at that pixel location. Select pixels lying within a circle from image - comp.soft-sys ...intersecting pixel of 2 lines - comp.soft-sys.matlab Are they graphics in the image (connected pixels of 255) or are ... soft-sys.matlab... is the radius of the circle ... Photo library - ready made solutions - comp.databases.filemaker ...intersecting pixel of 2 lines - comp.soft-sys.matlab Good day everyone, I have 2 lines on an image. ... The solution I'm thinking about is to using improfile ... Perpendicular from Point to Line - comp.soft-sys.matlabHi, I have a line determined by two points (x1,y1,z1) and (x2,y2,z2). ... the above line and passing > through point (x3,y3,z3) and intersecting the first line. self intersecting loft? - comp.cad.solidworksHow do I handle a self intersecting loft error? I have two profiles that touch. ... if you are > lofting a square to a circle, the square has four lines ... Image Processing- Length of a line - comp.soft-sys.matlab ...I want to find the real length of a line in an image. By this i mean the length that we perceive with our eyes and not the pixel length. Here we are ... Line drawing with Bresenham more than one pixel thick - comp.lang ...Hello, I am using the Bresenham algorithm to draw single pixel lines with no problems. However I would like to draw some lines which are more than... Pixel Calculation - comp.soft-sys.matlabIf you know the ball is sitting on an assembly line belt in manufacturing, simply ... problem is number of pixels is not equal to the real distance.since it scanning pixel ... combine edge detection with pixel tresholding - comp.soft-sys ...how to plot line between any two pixels? - comp.soft-sys.matlab ... combine edge detection with pixel tresholding - comp.soft-sys ... So every 2 pixel by 2 pixel part of ... intersecting pixel of 2 lines - comp.soft-sys.matlab | Computer GroupGood day everyone, I have 2 lines on an image. These 2 lines intersect each other. I would like to find the pixel location at which they intersect.... Intersecting lines algorithm - DelphiForFun HomeAddendum August 2, 2008: One more case was fixed today where non-intersecting lines were classified as ... So end points of one line lying within 1/2 pixel short of the ... 7/16/2012 9:58:48 AM
|