Какой самый эффективный способ проверить, что CVPixelBufferRef имеет белые пиксели?

Какой самый эффективный способ проверить, что CVPixelBufferRef имеет белые пиксели?

Ниже приведен код, который я сейчас использую, но он не возвращает белые пиксели, когда на фотографии явно есть белые пиксели.

const int kBytesPerPixel = 4;
        CVPixelBufferLockBaseAddress( pixelBuffer, 0 );
        int bufferWidth = (int)CVPixelBufferGetWidth( pixelBuffer );
        int bufferHeight = (int)CVPixelBufferGetHeight( pixelBuffer );
        size_t bytesPerRow = CVPixelBufferGetBytesPerRow( pixelBuffer );
        uint8_t *baseAddress = CVPixelBufferGetBaseAddress( pixelBuffer );


        int count = 0;
        BOOL hasWhitePixels = NO;
        for ( int row = 0; row < bufferHeight; row++ ){
            uint8_t *pixel = baseAddress + row * bytesPerRow;
            for ( int column = 0; column < bufferWidth; column++ ){
                if (pixel[0] == 255 && pixel[1] == 255 && pixel[2] == 255) {
                    count++;
                    hasWhitePixels = YES;
                    NSLog(@"HAS WHITE PIXELS");
                    break;
                }
                pixel += kBytesPerPixel;

            }
        }

        CVPixelBufferUnlockBaseAddress( pixelBuffer, 0 );

person user1752054    schedule 07.07.2017    source источник
comment
Вы уверены, что эти пиксели чисто белые (255 255 255)? Возможно, вам следует проверить с некоторой допуском?   -  person Kamil.S    schedule 08.08.2017
comment
Привет Камиль. Да, пиксели чисто белые.   -  person user1752054    schedule 08.08.2017
comment
Возможно, пиксели не поступают в порядке RGBA. Вы видели это: stackoverflow.com/ вопросы/7895856/ ?   -  person Kamil.S    schedule 09.08.2017
comment
Мы рассмотрим это. Спасибо за вашу помощь.   -  person user1752054    schedule 09.08.2017