A cooperating edge grammar for edge detection