image connectivity pixels coordinates storing
rainbowincloud
I am working on detect connected pixels in images, store their coordinates, and then manipulate the image pixels on those coordinates.
I read stuff about connectivity and there are various procedures. And I also found the "imageseedfill" function, which can partially do the job but did not record the coordinates. is there a better way to do this job in igor?
many thx.
rainbow
You really need to provide more details about what you are trying to accomplish. Without details I'd guess that you could benefit from ImageAnalyzeParticles which provides you with location information about "connected" particles. Also, you might want to take a look at the Image Processing Tutorial form more ideas. You can find the tutorial under File Menu -> Example Experiments -> Tutorials -> Image Processing Tutorial.
A.G.
WaveMetrics, Inc.
March 1, 2013 at 11:42 am - Permalink
so I got an imagematrix with 0 and other integers. For nonzero integers, they might be connected. what I am trying to do is to find the connected nonzero pixels. And assign new numbers on them based on the old number. So there will involve comparison etc. And then move to the other connected region.
after the treatment, a new image will be created, which have better contrast.
so far I didn't succeed by doing this using the imageseedfill, maybe particle analysis can help.
thnx
rainbow
March 1, 2013 at 11:59 am - Permalink
The first point to notice is that ImageAnalyzeParticles and other operations define "particles" as pixels that are set to zero. It seems to me that a starting point for your work might be to threshold the image (use the /i flag in ImageThreshold) so that the output image consists of particles where the pixels are set to zero. You can then pass the resulting wave to ImageAnalyzeParticles.
This sounds like a completely different application. If your goal is to enhance contrast it is not obvious how the connectivity of pixels gets into the picture (no pun intended).
If you are trying to pick up contiguous regions of pixels that have the same or similar pixel values and map them to different pixel values that I would again use ImageThreshold to obtain a binary mask and then use the mask to accumulate the newly mapped values into some output wave.
A.G.
WaveMetrics, inc.
March 1, 2013 at 02:27 pm - Permalink