<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'><div style="text-align: left;"><br>After going over my current problem I think I've found a bug in TransformPhysicalPointToIndex.<br><br>Below is a simple diagram of the Z axis, ranging from 0 to 342 pixels. If I put my box widget around the yyy section (and put my seed point in this section also), the result will be a segmentation of the opposite side.... the xxx section. <br></div><br>0|-------xxx----|----yyy-------|342<br><br>It doesn't make any sense as to why this happens. I'm simply taking the bounds of the box widget, creating points with them, and then turning them into indices.....<br><br>&nbsp; startPt[0] = (int)bounds[0]; //xmin&nbsp;&nbsp;&nbsp; <br>&nbsp; startPt[1] = (int)bounds[2]; //ymin<br>&nbsp; startPt[2] = (int)bounds[4]; //zmin<br><br>&nbsp;&nbsp;&nbsp; InternalImageType::PointType endPt;<br>&nbsp; endPt[0] = (int)bounds[1]; //xmin&nbsp;&nbsp;&nbsp; <br>&nbsp; endPt[1] = (int)bounds[3]; //ymin<br>&nbsp; endPt[2] = (int)bounds[5]; //zmin<br><br>&nbsp; InternalImageType::IndexType start;<br>&nbsp;&nbsp;&nbsp; InternalImageType::IndexType end;<br><br>InternalImageType::Pointer image = reader-&gt;GetOutput();<br><br>&nbsp; InternalImageType::PointType origin;<br>&nbsp; origin[0] = 0.0;<br>&nbsp; origin[1] = 0.0;<br>&nbsp; origin[2] = 0.0;<br>&nbsp; image-&gt;SetOrigin(origin);<br><br>&nbsp;&nbsp;&nbsp; image-&gt;TransformPhysicalPointToIndex(startPt, start);<br>&nbsp;&nbsp;&nbsp; image-&gt;TransformPhysicalPointToIndex(endPt, end);<br><br>&nbsp; InternalImageType::SizeType size;<br>&nbsp; size[0] = end[0]-start[0];<br>&nbsp; size[1] = end[1]-start[1]; <br>&nbsp; size[2] = end[2]-start[2];<br><br>--------------------------------------<br><br>Does this look like a bug?<br><br>Thanks,<br>Cameron.<br><br><br><br><div></div><br><br><blockquote><hr id="EC_stopSpelling">From: w_e_b_m_a_s_t_e_r_6_9@hotmail.com<br>To: luis.ibanez@kitware.com<br>Date: Fri, 9 May 2008 21:59:33 +1000<br>CC: insight-users@itk.org<br>Subject: Re: [Insight-users] 3D Segmentation Mask<br><br>

<meta http-equiv="Content-Type" content="text/html; charset=unicode">
<meta name="Generator" content="Microsoft SafeHTML">
<style>
.ExternalClass .EC_hmmessage P
{padding:0px;}
.ExternalClass body.EC_hmmessage
{font-size:10pt;font-family:Tahoma;}
</style>

<div style="text-align: left;"><br>Thanks Luis, that almost worked. I was concentrating so much on the box widget I didn't really think to change the seed point.<br><br>The problem now is seen in the following 2 pictures.<br><br>This is the dicom object I get from the box widget mask. IE: the area that I want to segment..... http://img169.imageshack.us/img169/1506/femurunsegmentedjx1.jpg<br>And this is the result.... http://img254.imageshack.us/img254/2503/femursegmenteden8.jpg<br><br>You can see that the result is actually not quite the area that we were after. Its moved up in the +Z direction so that most of the femur is actually cut off. I'm almost certain that this is because the Z axis is flipped or something similar. But why? One would presume that the TransformPhysicalPointToIndex function would give the correct index even if the Z axis was somehow the wrong way around, right?<br><br>Naturally, I just changed the Z starting point to start on the other side.....<br><br>&nbsp;start[2] = 512 - start[2];&nbsp;&nbsp; // hardcoded 512 as a test&nbsp; &nbsp;  <br>&nbsp;size[2] = start[2]-end[2];&nbsp; //changed from size[2] = end[2]-start[2];<br><br>.... however the program just crashed when I did that.<br><br><br>I'm wondering if this problem is a bug, because it seems really strange to me that the points don't translate properly. Do you think it might be, or is it just another simple fix that I'm overlooking??<br><br>Thanks.<br></div><br><div></div><br><br><hr id="EC_stopSpelling">&gt; Date: Wed, 7 May 2008 12:01:49 -0400<br>&gt; From: luis.ibanez@kitware.com<br>&gt; To: w_e_b_m_a_s_t_e_r_6_9@hotmail.com<br>&gt; CC: insight-users@itk.org<br>&gt; Subject: Re: [Insight-users] 3D Segmentation Mask<br>&gt; <br>&gt; <br>&gt; <br>&gt; Hi Cameron,<br>&gt; <br>&gt; <br>&gt; Your suspicion is probably right,<br>&gt; <br>&gt; <br>&gt; If you have the following pipeline:<br>&gt; <br>&gt; <br>&gt;     reader--&gt;ROIFilter--&gt;RegionGrow<br>&gt; <br>&gt; <br>&gt; and you feed the RegionGrowing filter<br>&gt; with seed points whose index coordinates<br>&gt; have been taken from the input image of<br>&gt; the ROIFilter, then those indices can<br>&gt; easily be outside of the extent of the<br>&gt; image used in the RegionGrow filter.<br>&gt; <br>&gt; <br>&gt; For example,<br>&gt; <br>&gt; if the input image has a region:<br>&gt; <br>&gt;     Index Start:   0,   0,   0<br>&gt;     Size:        512, 512, 200<br>&gt; <br>&gt; and you extract the ROI;<br>&gt; <br>&gt;     Index Start: 200, 200, 50<br>&gt;     Size       : 100, 100, 100<br>&gt; <br>&gt; you will end up with an image whose<br>&gt; region is given by:<br>&gt; <br>&gt;     Index Start:   0,   0,   0<br>&gt;     Size:        100, 100, 100<br>&gt; <br>&gt; the Origin coordinates will be computed in<br>&gt; order to match the physical position of the<br>&gt; index (200,200,50) in the input image.<br>&gt; <br>&gt; <br>&gt; So... if you are picking the seed points<br>&gt; from the input image you have to convert<br>&gt; these indices to the range of the output<br>&gt; image.<br>&gt; <br>&gt; For example:<br>&gt; <br>&gt;   Index picked in the input image:<br>&gt; <br>&gt;          257, 234, 65<br>&gt; <br>&gt;   should be converted to the ROI extracted<br>&gt;   image by subtracting the origin of the<br>&gt;   ROI<br>&gt; <br>&gt;      257-200, 234-200, 65-50<br>&gt; <br>&gt; to produce<br>&gt; <br>&gt;          57, 34, 15<br>&gt; <br>&gt; <br>&gt; You could also prevent crashes by testing<br>&gt; the index before running the algorithm.<br>&gt; <br>&gt; <br>&gt; For example:<br>&gt; <br>&gt; roi-&gt;Update();<br>&gt; if( roi-&gt;GetOutput()-&gt;GetBufferedRegion().IsInside( seed ) )<br>&gt; {<br>&gt;    regionGrowth-&gt;AddSeed( seed );<br>&gt;    regionGrowth-&gt;Update();<br>&gt; }<br>&gt; else<br>&gt; {<br>&gt;   // error message<br>&gt; }<br>&gt; <br>&gt; <br>&gt; Note tha you must call Update() in the roi filter<br>&gt; before you attempt to query its output image.<br>&gt; <br>&gt; <br>&gt; Please let us know if you find any other problems,<br>&gt; <br>&gt; <br>&gt;     Thanks<br>&gt; <br>&gt; <br>&gt;       Luis<br>&gt; <br>&gt; -----------------------<br>&gt; Cameron Burnett wrote:<br>&gt; &gt; <br>&gt; &gt; I've done a bit of testing to see where my problem is.<br>&gt; &gt; <br>&gt; &gt; 1) The region that I've set up (to define the <br>&gt; &gt; RegionOfInterestImageFilter) is definately within the input image range.<br>&gt; &gt; 2) The Confidence Connected seed point is definately within the defined <br>&gt; &gt; region.<br>&gt; &gt; <br>&gt; &gt; So in that regard everything seems perfect. Now I'm also getting another <br>&gt; &gt; result where the program crashes, presumably because of a bad pixel <br>&gt; &gt; index given to the Confidence Connected Filter....<br>&gt; &gt; <br>&gt; &gt;  const InputRealType seedIntensity =<br>&gt; &gt;       static_cast&lt;InputRealType&gt;(inputImage-&gt;GetPixel( *si ));      <br>&gt; &gt; //crashes here in itkConfidenceConnectedImageFilter.txx<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; .... and so now I'm thinking that maybe the RegionOfInterestImageFilter <br>&gt; &gt; has set up a whole new pixel index system, but my program is still using <br>&gt; &gt; the old one perhaps?<br>&gt; &gt; <br>&gt; &gt; Does this filter use the same pixel indices as the original image or <br>&gt; &gt; does it create new ones within the new region?? Thats honestly the ONLY <br>&gt; &gt; thing I can think of.<br>&gt; &gt; <br>&gt; &gt; Thanks.<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt;     ------------------------------------------------------------------------<br>&gt; &gt;     From: w_e_b_m_a_s_t_e_r_6_9@hotmail.com<br>&gt; &gt;     To: w_e_b_m_a_s_t_e_r_6_9@hotmail.com<br>&gt; &gt;     CC: insight-users@itk.org<br>&gt; &gt;     Subject: RE: [Insight-users] 3D Segmentation Mask<br>&gt; &gt;     Date: Tue, 6 May 2008 22:27:42 +1000<br>&gt; &gt; <br>&gt; &gt;     Hi all,<br>&gt; &gt; <br>&gt; &gt;     I've been working on my problem, and I fixed a few things but it<br>&gt; &gt;     still does nothing.<br>&gt; &gt; <br>&gt; &gt;     The part that I changed is as follows. I had forgotten to change the<br>&gt; &gt;     physical coordinates to indices, so thats what I've done here. Its<br>&gt; &gt;     output is shown below the code.<br>&gt; &gt; <br>&gt; &gt;     -------<br>&gt; &gt; <br>&gt; &gt;     InternalImageType::Pointer image = reader-&gt;GetOutput();<br>&gt; &gt; <br>&gt; &gt;       InternalImageType::PointType origin;<br>&gt; &gt;       origin[0] = 0.0;<br>&gt; &gt;       origin[1] = 0.0;<br>&gt; &gt;       origin[2] = 0.0;<br>&gt; &gt;       image-&gt;SetOrigin(origin);<br>&gt; &gt; <br>&gt; &gt;         image-&gt;TransformPhysicalPointToIndex(startPt, start);<br>&gt; &gt;         image-&gt;TransformPhysicalPointToIndex(endPt, end);<br>&gt; &gt; <br>&gt; &gt;       InternalImageType::SizeType size;<br>&gt; &gt;       size[0] = (int)end[0]-(int)start[0];<br>&gt; &gt;       size[1] = (int)end[1]-(int)start[1];<br>&gt; &gt;       size[2] = (int)end[2]-(int)start[2];<br>&gt; &gt; <br>&gt; &gt;             CString v;<br>&gt; &gt;         v.Format("%i %i %i %i %i<br>&gt; &gt;     %i",start[0],start[1],start[2],size[0],size[1],size[2]);<br>&gt; &gt;         AfxMessageBox(v);<br>&gt; &gt; <br>&gt; &gt;     ------<br>&gt; &gt; <br>&gt; &gt;     The output of that last message box shows the start coords and the<br>&gt; &gt;     size coords. That outputs "239 179 229 134 68 51". Now to me that<br>&gt; &gt;     sounds fine. My image is 512 x 512 x 342 so its within that, and<br>&gt; &gt;     also the size is quite small, which is exactly what I did with my<br>&gt; &gt;     box widget.<br>&gt; &gt; <br>&gt; &gt;     I'm not forgetting to refresh the screen or anything. All I have<br>&gt; &gt;     done is add this filter into the pipeline, and the rest is the same<br>&gt; &gt;     as when it worked previously with no masking.<br>&gt; &gt; <br>&gt; &gt;     Anything obviously wrong with my code??<br>&gt; &gt; <br>&gt; &gt;     Thanks,<br>&gt; &gt;     Cameron.<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt;         ------------------------------------------------------------------------<br>&gt; &gt;         From: w_e_b_m_a_s_t_e_r_6_9@hotmail.com<br>&gt; &gt;         To: luis.ibanez@kitware.com<br>&gt; &gt;         Date: Tue, 6 May 2008 00:24:10 +1000<br>&gt; &gt;         CC: insight-users@itk.org<br>&gt; &gt;         Subject: Re: [Insight-users] 3D Segmentation Mask<br>&gt; &gt; <br>&gt; &gt;         Thanks for that info Luis.<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt;         I implemented the box widget approach today and it seems to mask<br>&gt; &gt;         quite well, because the time it takes to run is drastically<br>&gt; &gt;         reduced. However I'm not actually getting anything to display on<br>&gt; &gt;         the screen.<br>&gt; &gt; <br>&gt; &gt;         I'm using the ImageReadRegionOfInterestWrite example, and the<br>&gt; &gt;         key section of code is as follows.<br>&gt; &gt; <br>&gt; &gt;         -------------------------------------------------------------------------<br>&gt; &gt; <br>&gt; &gt;           vtkPolyData *poly = vtkPolyData::New();<br>&gt; &gt; <br>&gt; &gt;           double bounds[6];<br>&gt; &gt;           for(int i=0; i&lt;6; i++){bounds[i] = NULL;}<br>&gt; &gt; <br>&gt; &gt;           boxWidget-&gt;GetPolyData(poly);<br>&gt; &gt;           poly-&gt;GetBounds(bounds);<br>&gt; &gt; <br>&gt; &gt;         //then i set up the filter<br>&gt; &gt; <br>&gt; &gt;           InternalImageType::IndexType start;<br>&gt; &gt;           start[0] = (int)bounds[0]; //xmin  <br>&gt; &gt;           start[1] = (int)bounds[2]; //ymin<br>&gt; &gt;           start[2] = (int)bounds[4]; //zmin<br>&gt; &gt; <br>&gt; &gt;           InternalImageType::SizeType size;<br>&gt; &gt;           size[0] = (int)(bounds[1]-bounds[0]);   //xmax-xmin<br>&gt; &gt;           size[1] = (int)(bounds[3]-bounds[2]);  //etc...<br>&gt; &gt;           size[2] = (int)(bounds[5]-bounds[4]);<br>&gt; &gt; <br>&gt; &gt;         //then i attach it all together, add it to the pipeline etc.<br>&gt; &gt; <br>&gt; &gt;         --------------------------------------------------------------------------------<br>&gt; &gt; <br>&gt; &gt;         I think my problem has something to do with the Start and Size<br>&gt; &gt;         indices. I'm not sure what i'm doing wrong though.<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt;         Thanks for any further help,<br>&gt; &gt;         Cameron.<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt;         ------------------------------------------------------------------------<br>&gt; &gt;          &gt; Date: Wed, 30 Apr 2008 16:56:25 -0400<br>&gt; &gt;          &gt; From: luis.ibanez@kitware.com<br>&gt; &gt;          &gt; To: w_e_b_m_a_s_t_e_r_6_9@hotmail.com<br>&gt; &gt;          &gt; CC: insight-users@itk.org<br>&gt; &gt;          &gt; Subject: Re: [Insight-users] 3D Segmentation Mask<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; Hi Cameron,<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; It seems that what you are looking for is a VTK interactive<br>&gt; &gt;          &gt; method for selecting a region of interest of your 3D image,<br>&gt; &gt;          &gt; that will be later passed to an ITK segmentation pipeline.<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; Is that correct ?<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; If so, one thing you could easily use is the<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; vtkAffineWidget<br>&gt; &gt;          &gt; http://www.vtk.org/doc/nightly/html/classvtkAffineWidget.html<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; or the<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; vtkBoxWidget<br>&gt; &gt;          &gt; http://www.vtk.org/doc/nightly/html/classvtkBoxWidget.html<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; or a combination of 3 ImagePlaneWidgets:<br>&gt; &gt;          &gt; http://www.vtk.org/doc/nightly/html/classvtkImagePlaneWidget.html<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; That you will find the widgets under<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; VTK/Widgets/<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; You could interactively manipulate their handles until you have<br>&gt; &gt;          &gt; captured the region of interest and then (programatically)<br>&gt; &gt;          &gt; you could query the current state of the widget in order to<br>&gt; &gt;          &gt; deduce the coordinates of its corners.<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; The coordinate of the region of interest could then be passed<br>&gt; &gt;          &gt; as a Region to the itkRegionOfInterestImageFilter.<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; Regards,<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; Luis<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt;<br>&gt; &gt;          &gt; ----------------------<br>&gt; &gt;          &gt; Cameron Burnett wrote:<br>&gt; &gt;          &gt; &gt; Hi,<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt; Currently I'm trying to figure out how to create a mask for<br>&gt; &gt;          &gt; &gt; segmentation. The way i'm thinking of doing it is using a<br>&gt; &gt;          &gt; &gt; MaskImageFilter to mask my DICOM object with a vtkActor<br>&gt; &gt;         cube object that<br>&gt; &gt;          &gt; &gt; I generated just from points. To do that I need to figure<br>&gt; &gt;         out 1 of 2<br>&gt; &gt;          &gt; &gt; things (due to the fact that you can't plug an actor<br>&gt; &gt;         straight into the<br>&gt; &gt;          &gt; &gt; mask filter). Either I replace that vtkActor with some sort<br>&gt; &gt;         of ITK box<br>&gt; &gt;          &gt; &gt; primitive that can go straight into the filter, OR I<br>&gt; &gt;         somehow convert the<br>&gt; &gt;          &gt; &gt; object into the correct itk image form.<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt; Does that make sense?? Generally I just want to segment<br>&gt; &gt;         only the stuff<br>&gt; &gt;          &gt; &gt; inside a box that I can move around. That's the simple way<br>&gt; &gt;         of putting it.<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt; I was looking at this example in the Insight Applications<br>&gt; &gt;          &gt; &gt; "vtkPolyDataToITKMesh.cxx" , but I'm not sure thats what<br>&gt; &gt;         I'm after. Also<br>&gt; &gt;          &gt; &gt; I found a bit on the mailing list about<br>&gt; &gt;          &gt; &gt; "TriangleMeshToBinaryImageFilter" but that has just left me<br>&gt; &gt;         even more<br>&gt; &gt;          &gt; &gt; confused.<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt; Is there an easier way to create an<br>&gt; &gt;         interactive/movable/scaleable 3D<br>&gt; &gt;          &gt; &gt; mask, other than a cube represented by a vtkActor? What<br>&gt; &gt;         sort of stuff<br>&gt; &gt;          &gt; &gt; should I be looking to use for this approach (or a similar<br>&gt; &gt;         one) ??<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt; Thanks in advance,<br>&gt; &gt;          &gt; &gt; Cameron.<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;         ------------------------------------------------------------------------<br>&gt; &gt;          &gt; &gt; Click here Search for local singles online @ Lavalife.<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;         &lt;http://a.ninemsn.com.au/b.aspx?URL=http%3A%2F%2Flavalife9%2Eninemsn%2Ecom%2Eau%2Fclickthru%2Fclickthru%2Eact%3Fid%3Dninemsn%26context%3Dan99%26locale%3Den%5FAU%26a%3D30290&amp;_t=764581033&amp;_r=email_taglines_Search_OCT07&amp;_m=EXT&gt;<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;         ------------------------------------------------------------------------<br>&gt; &gt;          &gt; &gt;<br>&gt; &gt;          &gt; &gt; _______________________________________________<br>&gt; &gt;          &gt; &gt; Insight-users mailing list<br>&gt; &gt;          &gt; &gt; Insight-users@itk.org<br>&gt; &gt;          &gt; &gt; http://www.itk.org/mailman/listinfo/insight-users<br>&gt; &gt; <br>&gt; &gt;         ------------------------------------------------------------------------<br>&gt; &gt;         Find out: SEEK Salary Centre Are you paid what you're worth?<br>&gt; &gt;         &lt;http://a.ninemsn.com.au/b.aspx?URL=http://ninemsn.seek.com.au/career-resources/salary-centre/?tracking%3Dsk:het:sc:nine:0:hot:text&amp;_t=764565661&amp;_r=OCT07_endtext_salary&amp;_m=EXT&gt;<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt;     ------------------------------------------------------------------------<br>&gt; &gt;     Hotmail on your mobile. Never miss another e-mail with<br>&gt; &gt;     &lt;http://www.livelife.ninemsn.com.au/article.aspx?id=343869&gt; <br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; ------------------------------------------------------------------------<br>&gt; &gt; at CarPoint.com.au It's simple! Sell your car for just $30 <br>&gt; &gt; &lt;http://a.ninemsn.com.au/b.aspx?URL=http%3A%2F%2Fsecure%2Dau%2Eimrworldwide%2Ecom%2Fcgi%2Dbin%2Fa%2Fci%5F450304%2Fet%5F2%2Fcg%5F801459%2Fpi%5F1004813%2Fai%5F859641&amp;_t=762955845&amp;_r=tig_OCT07&amp;_m=EXT&gt;<br>&gt; &gt; <br>&gt; &gt; <br>&gt; &gt; ------------------------------------------------------------------------<br>&gt; &gt; <br>&gt; &gt; _______________________________________________<br>&gt; &gt; Insight-users mailing list<br>&gt; &gt; Insight-users@itk.org<br>&gt; &gt; http://www.itk.org/mailman/listinfo/insight-users<br><br><hr>Find out: SEEK Salary Centre <a href="http://a.ninemsn.com.au/b.aspx?URL=http://ninemsn.seek.com.au/career-resources/salary-centre/?tracking%3Dsk:het:sc:nine:0:hot:text&amp;_t=764565661&amp;_r=OCT07_endtext_salary&amp;_m=EXT" target="_blank">Are you paid what you're worth?</a>
</blockquote><br /><hr />Find out: SEEK Salary Centre <a href='http://a.ninemsn.com.au/b.aspx?URL=http%3A%2F%2Fninemsn%2Eseek%2Ecom%2Eau%2Fcareer%2Dresources%2Fsalary%2Dcentre%2F%3Ftracking%3Dsk%3Ahet%3Asc%3Anine%3A0%3Ahot%3Atext&_t=764565661&_r=OCT07_endtext_salary&_m=EXT' target='_new'>Are you paid what you're worth?</a></body>
</html>