jjzjj

pixelBuffer

全部标签

ios - 如何在 Objective-C 、iOS 中缩放/调整 CVPixelBufferRef 的大小

我正在尝试将图像从CVPixelBufferRef调整为299x299。理想情况下也会裁剪图像。原始像素缓冲区为640x320,目标是在不丢失纵横比(裁剪到中心)的情况下缩放/裁剪到299x299。我找到了在objective-c中调整UIImage大小的代码,但没有找到调整CVPixelBufferRef大小的代码。我发现对象C许多不同图像类型的各种非常复杂的示例,但没有一个专门用于调整CVPixelBufferRef的大小。什么是最简单/最好的方法,请包括确切的代码。...我尝试了selton的答案,但这没有用,因为缩放缓冲区中的结果类型不正确(进入断言代码),OSTypesour

iphone - 将 UIImage 转换为 CVImageBufferRef

此代码大部分都有效,但生成的数据似乎失去了颜色channel(这是我的想法),因为生成的图像数据在显示时是蓝色的!代码如下:UIImage*myImage=[UIImageimageNamed:@"sample1.png"];CGImageRefimageRef=[myImageCGImage];CVImageBufferRefpixelBuffer=[selfpixelBufferFromCGImage:imageRef];pixelBufferFromCGIImage方法是从此处stackoverflow上的另一篇文章中获取的:HowdoIexportUIImagearrayasa

iphone - 将 UIImage 转换为 CVImageBufferRef

此代码大部分都有效,但生成的数据似乎失去了颜色channel(这是我的想法),因为生成的图像数据在显示时是蓝色的!代码如下:UIImage*myImage=[UIImageimageNamed:@"sample1.png"];CGImageRefimageRef=[myImageCGImage];CVImageBufferRefpixelBuffer=[selfpixelBufferFromCGImage:imageRef];pixelBufferFromCGIImage方法是从此处stackoverflow上的另一篇文章中获取的:HowdoIexportUIImagearrayasa

iphone - 将纹理复制到 PixelBuffer (CVPixelBufferRef)

我使用的API只提供纹理对象的整数ID,我需要将该纹理的数据传递给AVAssetWriter以创建视频。我知道如何从像素缓冲区(CVPixelBufferRef)创建CVOpenGLESTexture对象,但在我的例子中,我必须以某种方式复制只有id可用的纹理数据。换句话说,我需要将一个opengl纹理复制到我的基于像素缓冲区的纹理对象。可能吗?如果是那么怎么办?在我的示例代码中,我有类似的东西:voidencodeFrame(GluinttextureOb){CVPixelBufferPoolCreatePixelBuffer(NULL,[assetWriterPixelBuffer

AV Foundation ⑯ 视频处理与CMSampleBuffer

视频处理    使用AVCaptureMovieFileOutput虽然可以便捷的捕捉视频数据,但是它无法同视频数据进行交互,而交互又是许多场景所需要的功能。当需要使用底层控制时,就会用到框架提供的最底层的视频捕捉输出AVCaptureVideoDataOutput。    AVCaptureVideoDataOutput是一个AVCaptureOutput的子类,可以直接访问摄像头传感器捕捉到的视频帧。这是一个强大的功能,因为这样我们就完全控制了视频数据的格式、时间和元数据,可以按照需求操作视频内容。大部分情况下,处理过程都是使用OpenGLES或CoreImage,有时,Quartz也可以

AV Foundation ⑯ 视频处理与CMSampleBuffer

视频处理    使用AVCaptureMovieFileOutput虽然可以便捷的捕捉视频数据,但是它无法同视频数据进行交互,而交互又是许多场景所需要的功能。当需要使用底层控制时,就会用到框架提供的最底层的视频捕捉输出AVCaptureVideoDataOutput。    AVCaptureVideoDataOutput是一个AVCaptureOutput的子类,可以直接访问摄像头传感器捕捉到的视频帧。这是一个强大的功能,因为这样我们就完全控制了视频数据的格式、时间和元数据,可以按照需求操作视频内容。大部分情况下,处理过程都是使用OpenGLES或CoreImage,有时,Quartz也可以