954,499 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

c++ library for image processing (edge detection)

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 [200][200];
Where is_edge[x][y] == true when there is edge in pixel [x,y]

Sorry form my english, waiting for some hints :)

35nando
Newbie Poster
10 posts since Dec 2008
Reputation Points: 10
Solved Threads: 0
 

well even i am into image processing and this link helpmed me a lot .
i dont know how far it will help you .
http://cimg.sourceforge.net/

rahul8590
Posting Whiz
351 posts since Mar 2009
Reputation Points: 92
Solved Threads: 20
 

The following link describes in detail how to code edge detection yourself:
http://www.pages.drexel.edu/~weg22/edge.html
And maybe this link is useful too: http://www.intelliproject.net/articles/showArticle/index/image_proc_edge_detect

tux4life
Nearly a Posting Maven
2,350 posts since Feb 2009
Reputation Points: 2,134
Solved Threads: 243
 

l seen soemthing like this in the OpenCV libraries.

NicAx64
Posting Pro
536 posts since Mar 2009
Reputation Points: 86
Solved Threads: 44
 

Yeah, I just wanted to say that: http://opencv.willowgarage.com/wiki/Welcome

tux4life
Nearly a Posting Maven
2,350 posts since Feb 2009
Reputation Points: 2,134
Solved Threads: 243
 

Thanks for your posts, but none of those libraries provides what I want.

The following link describes in detail how to code edge detection yourself: http://www.pages.drexel.edu/~weg22/edge.html


It's not working under Dev Cpp, under Builder it generates white image.l seen soemthing like this in the OpenCV libraries.Yeah, I just wanted to say that: http://opencv.willowgarage.com/wiki/Welcome

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.well even i am into image processing and this link helpmed me a lot .
i dont know how far it will help you .
http://cimg.sourceforge.net/

There is no edge detection in this library.


I'm still searching ...

35nando
Newbie Poster
10 posts since Dec 2008
Reputation Points: 10
Solved Threads: 0
 

And what about this one ?
Or this one ?

So far it seems there isn't a library which supports it so you'll maybe have to implement it yourself ...

tux4life
Nearly a Posting Maven
2,350 posts since Feb 2009
Reputation Points: 2,134
Solved Threads: 243
 
rahul8590
Posting Whiz
351 posts since Mar 2009
Reputation Points: 92
Solved Threads: 20
 
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 isnot 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 .

Nick Evan
Not a Llama
Moderator
10,112 posts since Oct 2006
Reputation Points: 4,142
Solved Threads: 403
 
daviddoria
Posting Virtuoso
1,996 posts since Feb 2008
Reputation Points: 437
Solved Threads: 204
 

Thanks for your advices!

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)

Your right, Builder is quite outdated and I consider switching to VS2008. The biggest advantage is that it's free from MSDNAA.
All .NET platform is interesting.


The library I finnaly use to edge detection is the DevIL library. http://openil.sourceforge.net/
It's really good, regularly epdated and easy to use.

35nando
Newbie Poster
10 posts since Dec 2008
Reputation Points: 10
Solved Threads: 0
 

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.

enjoy your life!

foo-nix

foo-nix
Newbie Poster
1 post since Jun 2011
Reputation Points: 10
Solved Threads: 0
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You