[Interest] Converting CVImageBufferRef into QImage

Nuno Santos nunosantos at imaginando.pt
Sat Feb 29 14:18:02 CET 2020


I have finally found a simple way of doing it.

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{
    CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);

    CVPixelBufferLockBaseAddress(imageBuffer, kCVPixelBufferLock_ReadOnly);

    CIImage *ciImage = [CIImage imageWithCVPixelBuffer:imageBuffer];
    CIContext *temporaryContext = [CIContext contextWithOptions:nil];
    CGImageRef videoImage = [temporaryContext createCGImage:ciImage fromRect:CGRectMake(0, 0, CVPixelBufferGetWidth(imageBuffer), CVPixelBufferGetHeight(imageBuffer))];

    QPixmap pm = QtMac::fromCGImageRef(videoImage);

    CVPixelBufferUnlockBaseAddress(imageBuffer, kCVPixelBufferLock_ReadOnly);
}

Nuno

> On 29 Feb 2020, at 09:09, Jason H <jhihn at gmx.com> wrote:
> 
> [replying to the list this time]
> 
> I don't know if it is possible, but if CoreVideo can't do it OpenCV could probably do it. Not sure if 2vuy is in their list. Have a look at https://docs.opencv.org/3.4/d8/d01/group__imgproc__color__conversions.html#ga4e0972be5de079fed4e3a10e24ef5ef0
> 
> This should be hardware accelerated to some degree...
> 
> 
>> Sent: Friday, February 28, 2020 at 7:26 PM
>> From: "Thiago Macieira" <thiago.macieira at intel.com>
>> To: interest at qt-project.org
>> Subject: Re: [Interest] Converting CVImageBufferRef into QImage
>> 
>> On Friday, 28 February 2020 09:57:31 PST Nuno Santos wrote:
>>> Thiago,
>>> 
>>> kCVPixelFormatType_422YpCbCr8     = '2vuy',     /* Component Y'CbCr 8-bit
>>> 4:2:2, ordered Cb Y'0 Cr Y'1 */
>>> 
>>> Missing your incredible replies already... You ROCK! :)
>>> 
>>> The question is still pertinent in the Qt domain since there is no direct
>>> way of constructing a QImage from 2vuy color space.
>> 
>> Then you convert yourself or via some HW acceleration.
>> 
>> You may be able to ask CV to convert to ARGB32 in HW for you.
>> 
>> --
>> Thiago Macieira - thiago.macieira (AT) intel.com
>>  Software Architect - Intel System Software Products
>> 
>> 
>> 
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> https://lists.qt-project.org/listinfo/interest
>> 
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20200229/bdfb58f9/attachment-0001.html>


More information about the Interest mailing list