|
"rebecca donnelly" <rdonnelly10@qub.ac.uk> wrote in message <hd4e7h$ak2$1@fred.mathworks.com>...
> Hi,
> I am a first year PhD student and am implementing the image processing algorithm "Seeded Region Growing" as an exercise to help me get to grips with Matlab and to gain a deeper understanding of the algorithm.
>
> The paper asks for a datastructure they call a "Sequentially Sorted List", it needs to hold an object which contains the x and y coordinates of a pixel and another value called Sigma which the list is sorted by.
>
> I attempted to do this using the following code:
>
> % Calculate sigma and create a new pxladrs object
> sigma_value = abs(seg_img(x+1, y) - mean_gl);
> p = pxladrs(sigma_value);
> % Add x and y coords to pxladrs object
> p.Xvalue = x+1;
> p.Yvalue = y;
> % Add object to SSL
> if counter==0
> ssl_start = dlnode(p);
> else
> cur = ssl_start;
> % Insert ordered by sigma value
> while cur ~= 0
> if p.Sigma < cur.Data.Sigma
> ssl_insert = dlnode(p);
> ssl_insert.insertBefore(cur);
> break
> end
> end
> cur = cur.Next;
>
> However this didn't work as I couldn't store the pxladrs object in the doubly linked list.
>
> Error:
> ??? Undefined function or method 'dlnode' for input arguments of
> type 'pxladrs'.
> Error in ==> SeededRegionGrowing at 58
> ssl_start = dlnode(p);
>
> So my question is; How do I modify the doubly linked list so it can handle objects? Or am I going about this totally the wrong way?
>
> Any comments appriciated,
> Rebecca
I think you have to define the dlnode object as described in the documentation, it is not a built-in Matlab object.
classdef dlnode < handle
properties
Data
end
properties (SetAccess = private)
Next
Prev
end
|