Du musst zum einen die Suchmethoden so umschreiben, dass sie kein bild mehr brachen, sondern nur das canvas, und dann kannst du deine Methode relativ easy umschreiben, dass sie nicht nur den Pixel gibt, sondern das komplette Canvas.
Sag bloß, du hast diese Funktion für jeden Pixel jedes mal aufgerufen ?
kein Wunder, wenn das dann so langsam geht ...