से वांछित डेटा प्राप्त करना मेरे पास एक ऐसा प्रोग्राम है जो वास्तविक समय में कैमरा इनपुट देखता है और मध्य पिक्सेल का रंग मान प्राप्त करता है। विधि एक AVCaptureSession उत्पादन और उसके बाद मैं निम्नलिखित कोड का उपयोग कर एक पिक्सेल के आरजीबी मूल्यों हड़पने (जो एक CVPixelBuffer रूप में पढ़ा जा करने के लिए होता है) से CMSampleBuffer हड़पने के लिए:: मैं एक captureOutput का उपयोगएक सीवी पिक्सेलबफर संदर्भ
// Get a CMSampleBuffer's Core Video image buffer for the media data
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
// Lock the base address of the pixel buffer
CVPixelBufferLockBaseAddress(imageBuffer, 0);
// Get the number of bytes per row for the pixel buffer
size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer);
// Get the pixel buffer width and height
size_t width = CVPixelBufferGetWidth(imageBuffer);
size_t height = CVPixelBufferGetHeight(imageBuffer);
unsigned char* pixel = (unsigned char *)CVPixelBufferGetBaseAddress(imageBuffer);
NSLog(@"Middle pixel: %hhu", pixel[((width*height)*4)/2]);
int red = pixel[(((width*height)*4)/2)+2];
int green = pixel[(((width*height)*4)/2)+1];
int blue = pixel[((width*height)*4)/2];
int alpha = 1;
UIColor *color = [UIColor colorWithRed:(red/255.0f) green:(green/255.0f) blue:(blue/255.0f) alpha:(alpha)];
मुझे लगता है कि सूत्र हालांकि ((चौड़ाई * ऊंचाई) * 4)/2 मुझे मध्य पिक्सेल मिल जाएगा, लेकिन यह मुझे छवि का शीर्ष मध्य पिक्सेल देता है। मैं सोच रहा हूं कि स्क्रीन के बीच में पिक्सेल तक पहुंचने के लिए मुझे किस फॉर्मूला का उपयोग करना होगा। मैं फंस गया हूं क्योंकि मुझे वास्तव में इन पिक्सेल बफर की आंतरिक संरचना नहीं पता है।
भविष्य में मैं 4 मध्यम पिक्सल को पकड़ना चाहता हूं और उन्हें अधिक सटीक रंग पढ़ने के लिए औसत देना चाहता हूं, लेकिन अभी के लिए मैं यह जानना चाहूंगा कि ये चीज़ें कैसे काम करती हैं।
हाँ, iOS उपकरणों पर दो कैमरों के लिए डिफ़ॉल्ट झुकाव, परिदृश्य है, इसलिए यदि आप किसी भी चित्र मोड काम कर रहे हैं आप ' एक घूर्णन फ्रेम से निपटने की आवश्यकता होगी। –
@ कोडो कोई सलाह? http://stackoverflow.com/questions/37611593/how-to-create-cvpixelbufferref-with-yuv420i420- डेटा –
उत्सुक, चौड़ाई भाग 4 से गुणा क्यों किया जा रहा है? – OutOnAWeekend