Hi, I'm looking for a library which provides edge detecion on color image. For example i have an 200x200 color image and i need to a table form it:
bool is_edge ;
Where is_edge[x][y] == true when there is edge in pixel [x,y]
OpenCV is too exotic and weird. Provides many files but there is no good documentation and examples for Builder c++. I couldn't run it properly.
First of all: OpenCV is not exotic or weird. It is actually being used a lot, even by professional companies.
The reason that there are so few examples for Borland Builder, is that Builder is outdated and there are plenty free (and better) alternatives on the net. (like VS2008 and Code::blocks)
But you are probably going to say: "But I like Borland, I don't wanna change!1!" etc. So here's a link with a manual and even a demo-project. I found it using this amazing site.
You could use a sobel filter, which is just a convolution with another small image (or matrix). This also goes for prewitt or whatever differentiator you find adequate.
These edge-detector's aren't very andvanced and typically need some preprocession, such as noisereduction. If you want to do a fast test, you could reduce noise by applying a gaussian (i.e. convolution with a Gaussian 'hat') if it needs to be better use a set-opening/closing (Two doctors on my university have something quite interresting: "A comparison of algorithms for connected set openings and closings", which preserves shape (gaussian doesn't, and shape is important if you detect edges I guess) see: http://www.cs.rug.nl/~michael/ ).
I have written a fft-convolution algorithm (for cimg, but it won't be included for a few months as I am still coding around it and it may slightly change) which is a bit faster then a normal convolution, but in your case where the kernel isn't too big I wouldn't really care ;)
Another thing: edge detection can of course be seen as the amount of change between neighbor pixels.