Adding Edge Detection to CIA

Over the course of the last two days I've been adding an edge detection filter to the cell analysis code in the hopes of being able to better identify the cell nuclei. The belief from the Guys was that an edge detector followed by the existing feature extraction would easily give us representative nuclei. What I've found is, unfortunately, not good news.

I went searching on the net for any edge detection code. What I had originally found was that most of the good code was not available for just anyone. They wanted to make a profit on it. That's understandable, but it leaves me at a disadvantage. I still needed the code. I thought of the Sobel code in The GIMP, but didn't want to deal with the GPL that comes along with it. So I went back to the web. This time I got lucky.

I found a codebase called SUSAN. I also found an implementation of the base Sobel algorithm and one called Canny. With these two I was sure I could get a working edge detector going. And I was right.

I've cleaned up the code on the SUSAN algorithm and incorporated it into the base cia code. I've added a few arguments that indicate what channels to use for the gray scale conversion, and whether or not to output the edge detected image for viewing. In all, I'm pleased with this part of the work. What isn't so pleasing is the results, or lack thereof.

It seems that it really doesn't make a difference if I use edge detection based on RGB, Hue, Red - they all give results that aren't as good as just intelligent selection of Hue or Red. This is a shame, because Richard seems to think that it's easily done with programs he has. Alas, that's not what I'm finding out.