Since I'm working on my own robotics project right now (which is actually turning into a full blown AI the more I progress on it), one of the tasks I'm facing is edge detection. I initially thought it wouldn't be that hard. I've written programs that can detect the edges of still images provided the "edge" in question is white. One example is the ASCII art bbcode program I was writing a while back. Here is one example:
Original Image:
ASCII version (minus the registered trademark):
***************************************************ZZZZ
**************************************************ZZZZ
*************************************************ZZZZ
*************************************************ZZZZ*
*************************************************ZZZZZ
*************************************************ZZZZZZ
*************************************************ZZZZZZZ
***********ZZZZZZZZZZZZZZ*****************Z********ZZZZZZ*******************ZZZ
*******ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ*ZZZZZ****ZZ**ZZZZZZZ**********ZZZ**ZZZZZ
******ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ*ZZZZZZ*ZZZZZZ**ZZZZZZZZ******ZZZZZZ*ZZZZZ
***********************ZZZZZZZZZZZZ*****ZZZZZZZZZZZ****ZZZZZZZZ*****ZZZZZ**ZZZZ
*************************ZZZZZZZ********ZZ****ZZZZZ*****ZZZZZZZZ****ZZZZ**ZZZ*****************************ZZZZZ
**********************ZZZZZZZZ**********ZZZ***ZZZZZ*******ZZZZZZZZ**Z*ZZZ**ZZZZ***ZZZZZZZ*******ZZZZZZ*ZZZZZZZZZ
******************ZZZZZZZZ***********ZZZZZZ***ZZZZ*****ZZZZZZZZZZZZ*ZZZZZZZZZZZ*ZZZZZZZZZZZ****ZZZZZZZZZZZZZZZZZZ
*************ZZZZZZZZZ**************ZZZZZZZ**ZZZZZ***ZZZZZZ***ZZZZZZZZZZZZZZZZZ*****ZZZZZZZZ*****ZZZZZZZ***ZZZZZZ*
********ZZZZZZZZZZZ*******************ZZZZZ**ZZZZZ**ZZZZZZ****ZZZZZZZZZZ**ZZZZZ***ZZZZZZZZZZZZ***ZZZZZZ****ZZZZZZZZ*ZZZ
*****ZZZZZZZZZZZZZZ*******************ZZZZZ**ZZZZZ**ZZZZZZ***ZZZZZZZZZZZ**ZZZZZ*ZZZZZ**ZZZZZZZZZZZZZZZZ*****ZZZZZZZZZZZZ
***ZZZZZZZZZZZZZZZZZZZZZZZ************ZZZZZZZZZZZZZZZZZZZZZZZZZZZ**ZZZZZ**ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ*******ZZZZZZZZZZ
*ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ***ZZZZZZ***ZZZZZZZZZZZZZZZ*ZZZZZZZZZZ**********ZZZZZZ
ZZZZ**********ZZZZZZZZZZZZZZZZZZZZZZZZZ**ZZ*************ZZ********ZZZZZ**************************Z
***********************ZZZZZZZZZZZZZ******************************ZZZZZ
*****************************************************************ZZZZZ
****************************************************************ZZZZZ
********************************************************ZZZZZZZZZZZ
*******************************************************ZZZZZZZZZ
This program uses an image (jpeg, png, bitmap, etc) as input, and treats each pixel of that image as an analyzed segment. Furthermore, the program detects the right-most edge of the image and performs a behavior. In this case, everything to the right of the dark pixel is excluded from the output (you can highlight the ascii image, and see this).
When applied to moving images (video), you can say that this image represents a single frame (or "sample") of the video. If the input video is black and white, then this will effectively perform edge detection on that too. My current hypothesis on the matter is that the overall edge detection problem is simply a matter of developing the right algorithm, and isn't necessarily a computer-intelligence problem.
The reason I posted this thread however is to find SciForumers who've actually worked with computer vision before, and see what you guys have to say about the matter. I was reading the wiki article on it, and it explained that edge detection was actually extremely difficult.
PS -- I welcome input from anybody that wants to post (even people who don't have any knowledge of computer vision or programming and just want to share their ideas)
Original Image:
ASCII version (minus the registered trademark):
***************************************************ZZZZ
**************************************************ZZZZ
*************************************************ZZZZ
*************************************************ZZZZ*
*************************************************ZZZZZ
*************************************************ZZZZZZ
*************************************************ZZZZZZZ
***********ZZZZZZZZZZZZZZ*****************Z********ZZZZZZ*******************ZZZ
*******ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ*ZZZZZ****ZZ**ZZZZZZZ**********ZZZ**ZZZZZ
******ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ*ZZZZZZ*ZZZZZZ**ZZZZZZZZ******ZZZZZZ*ZZZZZ
***********************ZZZZZZZZZZZZ*****ZZZZZZZZZZZ****ZZZZZZZZ*****ZZZZZ**ZZZZ
*************************ZZZZZZZ********ZZ****ZZZZZ*****ZZZZZZZZ****ZZZZ**ZZZ*****************************ZZZZZ
**********************ZZZZZZZZ**********ZZZ***ZZZZZ*******ZZZZZZZZ**Z*ZZZ**ZZZZ***ZZZZZZZ*******ZZZZZZ*ZZZZZZZZZ
******************ZZZZZZZZ***********ZZZZZZ***ZZZZ*****ZZZZZZZZZZZZ*ZZZZZZZZZZZ*ZZZZZZZZZZZ****ZZZZZZZZZZZZZZZZZZ
*************ZZZZZZZZZ**************ZZZZZZZ**ZZZZZ***ZZZZZZ***ZZZZZZZZZZZZZZZZZ*****ZZZZZZZZ*****ZZZZZZZ***ZZZZZZ*
********ZZZZZZZZZZZ*******************ZZZZZ**ZZZZZ**ZZZZZZ****ZZZZZZZZZZ**ZZZZZ***ZZZZZZZZZZZZ***ZZZZZZ****ZZZZZZZZ*ZZZ
*****ZZZZZZZZZZZZZZ*******************ZZZZZ**ZZZZZ**ZZZZZZ***ZZZZZZZZZZZ**ZZZZZ*ZZZZZ**ZZZZZZZZZZZZZZZZ*****ZZZZZZZZZZZZ
***ZZZZZZZZZZZZZZZZZZZZZZZ************ZZZZZZZZZZZZZZZZZZZZZZZZZZZ**ZZZZZ**ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ*******ZZZZZZZZZZ
*ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ***ZZZZZZ***ZZZZZZZZZZZZZZZ*ZZZZZZZZZZ**********ZZZZZZ
ZZZZ**********ZZZZZZZZZZZZZZZZZZZZZZZZZ**ZZ*************ZZ********ZZZZZ**************************Z
***********************ZZZZZZZZZZZZZ******************************ZZZZZ
*****************************************************************ZZZZZ
****************************************************************ZZZZZ
********************************************************ZZZZZZZZZZZ
*******************************************************ZZZZZZZZZ
This program uses an image (jpeg, png, bitmap, etc) as input, and treats each pixel of that image as an analyzed segment. Furthermore, the program detects the right-most edge of the image and performs a behavior. In this case, everything to the right of the dark pixel is excluded from the output (you can highlight the ascii image, and see this).
When applied to moving images (video), you can say that this image represents a single frame (or "sample") of the video. If the input video is black and white, then this will effectively perform edge detection on that too. My current hypothesis on the matter is that the overall edge detection problem is simply a matter of developing the right algorithm, and isn't necessarily a computer-intelligence problem.
The reason I posted this thread however is to find SciForumers who've actually worked with computer vision before, and see what you guys have to say about the matter. I was reading the wiki article on it, and it explained that edge detection was actually extremely difficult.
PS -- I welcome input from anybody that wants to post (even people who don't have any knowledge of computer vision or programming and just want to share their ideas)