Erkennen schwarze pixel im Bild iOS

Ab jetzt Suche ich für jeden pixel 1 von 1 überprüfen Sie die Farbe und sehen, wenn es schwarz ist... wenn es nicht weiter geht zum nächsten pixel. Das dauert ewig, da kann ich nur prüfen, ca. 100 Pixel pro Sekunde (Beschleunigung meiner NSTimer friert die app, weil es nicht check schnell genug.) So ist es trotzdem kann ich nur Xcode wieder alle Pixel, die schwarz und ignorieren alles andere, so dass ich nur noch prüfen, die Pixel und nicht die einzelnen pixel. Ich versuche zu erkennen, ein schwarzer pixel am weitesten Links auf mein Bild.

Hier ist mein Derzeitiger code.

- (void)viewDidLoad {
    timer = [NSTimer scheduledTimerWithTimeInterval: 0.01
                                             target: self
                                           selector:@selector(onTick:)
                                           userInfo: nil repeats:YES];
    y1 = 0;
    x1 = 0;
    initialImage = 0;
    height1 = 0;
    width1 = 0;
}

-(void)onTick:(NSTimer *)timer {
    if (initialImage != 1) {
        /*
        IMAGE INITIALLY GETS SET HERE... "image2.image = [blah blah blah];" took this out for non disclosure reasons
        */
        initialImage = 1;
    }
    //image2 is the image I'm checking the pixels of.
    width1 = (int)image2.size.width;
    height1 = (int)image2.size.height;
    CFDataRef imageData = CGDataProviderCopyData(CGImageGetDataProvider(image2.CGImage));
    const UInt32 *pixels = (const UInt32*)CFDataGetBytePtr(imageData);
    if ( (pixels[(x1+(y1*width1))]) == 0x000000) { //0x000000 is black right?
        NSLog(@"black!");
        NSLog(@"x = %i", x1);
        NSLog(@"y = %i", y1);
    }else {
        NSLog(@"val: %lu", (pixels[(x1+(y1*width1))]));
        NSLog(@"x = %i", x1);
        NSLog(@"y = %i", y1);
        x1 ++;
        if (x1 >= width1) {
            y1 ++;
            x1 = 0;
        }
    }
    if (y1 > height1) {
        /*
        MY UPDATE IMAGE CODE GOES HERE (IMAGE CHANGES EVERY TIME ALL PIXELS HAVE BEEN CHECKED
        */
        y1 = 0;
        x1 = 0;
    }

Auch was, wenn ein pixel ist wirklich nahe an schwarz, aber nicht ganz schwarz ist... Kann ich einen Spielraum für Fehler dort irgendwo, so wird es noch erkennen, Pixel, die, wie 95% schwarz? Danke!

Schreibe einen Kommentar