16. A method comprising: accessing a plurality of images; segmenting each of the plurality of images into a respective plurality of segments; performing a multi-phase contour detection on each respective plurality of segments to create one or more shape-descriptors, including a first edgel-based representation, of each of the plurality of images, wherein the first edgel-based representation comprises a first set of pixels that depicts one or more first boundary contours of each of the plurality of segments; and generating, by a processor, an edgel index comprising image data that describes the respective one or more shape-descriptors, including the first edgel-based representations of each of the plurality of images; receiving a search query, the search query comprising a visual query input; converting the visual query input into at least one shape-descriptor, including a second edgel-based representation; and comparing the one or more shape-descriptors, including the first edgel-based representation, of each of the plurality of images with the at least one shape descriptor, including the second edgel-based representation, of the visual query input to identify at least one image of the plurality of images that matches the visual query input, wherein the second edgel-based representation comprises a second set of pixels that depicts one or more second boundary contours of the visual query input and is created by segmenting the visual query input into a plurality visual query input segments and performing a multi-phase contour detection on each of the plurality of visual query input segments.
16. A method comprising: accessing a plurality of images; segmenting each of the plurality of images into a respective plurality of segments; performing a multi-phase contour detection on each respective plurality of segments to create one or more shape-descriptors, including a first edgel-based representation, of each of the plurality of images, wherein the first edgel-based representation comprises a first set of pixels that depicts one or more first boundary contours of each of the plurality of segments; and generating, by a processor, an edgel index comprising image data that describes the respective one or more shape-descriptors, including the first edgel-based representations of each of the plurality of images; receiving a search query, the search query comprising a visual query input; converting the visual query input into at least one shape-descriptor, including a second edgel-based representation; and comparing the one or more shape-descriptors, including the first edgel-based representation, of each of the plurality of images with the at least one shape descriptor, including the second edgel-based representation, of the visual query input to identify at least one image of the plurality of images that matches the visual query input, wherein the second edgel-based representation comprises a second set of pixels that depicts one or more second boundary contours of the visual query input and is created by segmenting the visual query input into a plurality visual query input segments and performing a multi-phase contour detection on each of the plurality of visual query input segments. 17. The method of claim 16 , wherein the visual query input is at least one of an image, a sketch, a collage, and any combination thereof.