Получить значение Pixel RGB из CVPixelBuffer на Swift 4 - PullRequest
0 голосов
/ 20 сентября 2018

Моя проблема в том, что я могу получить значение пикселя из CVPixelBuffer, но все значение равно 255,255,255.Я использую код, как показано ниже:

func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {

    guard let photoPixelBuffer = photo.pixelBuffer else {
        print("Error occurred while capturing photo: Missing pixel buffer (\(String(describing: error)))")

        return
    }
    func pixelFrom(x: Int, y: Int, movieFrame: CVPixelBuffer) -> (UInt8, UInt8, UInt8) {
        let baseAddress = CVPixelBufferGetBaseAddress(movieFrame)

        let width = CVPixelBufferGetWidth(movieFrame)
        let height = CVPixelBufferGetHeight(movieFrame)

        let bytesPerRow = CVPixelBufferGetBytesPerRow(movieFrame)
        let buffer = baseAddress!.assumingMemoryBound(to: UInt8.self)

        let index = x+y*bytesPerRow
        let b = buffer[index]
        let g = buffer[index+1]
        let r = buffer[index+2]

        return (r, g, b)
    }
    print(pixelFrom(x:1,y:1,movieFrame:photoPixelBuffer))
    all the r,g,b value is 255.

вот ссылка для получения пикселя из CVBuffer

...