From: Krishna C on
Hi everybody,

I need some help regarding the following problem,

I have an image with many intersection points ( marked in red in the following image)..

http://www.flickr.com/photos/30274557(a)N05/4547638073/

every intersection point is connected to the other intersection point through a white line..What i want to do is find out the connected intersection points for every intersection point i.e. if we take a particular intersection point i have to find the points that are connected to it through that white lines..the output should be like, a intersection point and its connected points (their coordinates0

The image is a binary image and also i have the set of all intersection points(coordinates) in a matrix...

Kindly anybody give an idea of solving this problem ...

Many many thanks in advance...

from,
Krishna Chaitanya
From: Bruno Luong on
"Krishna C" <chaitanya.alur(a)gmail.com> wrote in message <hquvu1$dsm$1(a)fred.mathworks.com>...
> Hi everybody,
>
> I need some help regarding the following problem,
>
> I have an image with many intersection points ( marked in red in the following image)..
>
> http://www.flickr.com/photos/30274557(a)N05/4547638073/
>
> every intersection point is connected to the other intersection point through a white line..What i want to do is find out the connected intersection points for every intersection point i.e. if we take a particular intersection point i have to find the points that are connected to it through that white lines..the output should be like, a intersection point and its connected points (their coordinates0
>
> The image is a binary image and also i have the set of all intersection points(coordinates) in a matrix...
>
> Kindly anybody give an idea of solving this problem ...
>

Define A (n x n), as the connection matrix and put 1 on the diagonal to make sure all node is connected to itself.

Define x = as (n x 1) vector of connected nodes. Initialize x as x0 zeros accept 1 at position i given.

% Define:
funx = @(x) logical(A*x)

% Iteration:

x = x0;
while true
oldx = x;
x = func(x);
if isequal(x, oldx)
break
end
end

x will contain 1 for all the connected nodes to ith node.

% Bruno
From: ImageAnalyst on
Krishna Chaitanya:
I'm not exactly sure what you want. Do you want another image (with
only pixels that are immediately next to an intersection node pixel),
or a list of coordinates listing the intersection node coordinate
along with all coordinates connected to that node coordinate?

From: Krishna C on
ImageAnalyst <imageanalyst(a)mailinator.com> wrote in message <12a13944-1d27-4ad5-aeda-da9e97d5819f(a)x7g2000vbc.googlegroups.com>...
> Krishna Chaitanya:
> I'm not exactly sure what you want. Do you want another image (with
> only pixels that are immediately next to an intersection node pixel),
> or a list of coordinates listing the intersection node coordinate
> along with all coordinates connected to that node coordinate?


Thanks for the reply sir,

exactly i want the second one , for every intersection node(red marked) i want the list of node coordinates that are connected to it...

Kindly have a look at the following image, so that you can get a better idea..

http://www.flickr.com/photos/30274557(a)N05/4549284144/sizes/o/

in the above pic, take some node (represented in blue circle), i want to extract the coordinates of its connected nodes ( represented in green circles). I want to make a list like this for every intersection node (marked by red star) in the image..

The data i have is, the list of coordinates of all intersection nodes (red ones)..
From: ImageAnalyst on
No, you don't want the second one. You want the nearest connected
intersection nodes, not simply the nearest pixel, because the nearest
pixel could be on a path to the nearest node. But you didn't circle
the nearest pixel, you circled the adjacent intersection nodes that is
on a direct path to the node in question. I don't know of a simple
way to find those - only complicated ways - but maybe someone else
who's more into graph theory can help you.