我目前正在开发一个iOS应用程序,它将CoreImage应用于相机提要以拍摄照片和视频,而且我遇到了一些障碍.
到目前为止,我一直在使用AVCaptureVideoDataOutput获取样本缓冲区并使用CoreImage对其进行操作,然后显示简单的预览,并使用它来捕获照片并保存它们.
当我尝试实现视频录制时,通过在从AVCaptureVideoDataOutput接收视频时将SampleBuffers写入视频,它的帧速率非常慢(可能是因为正在进行的其他图像相关处理).
所以我想知道,AVCaptureVideoDataOutput和AVCaptureMoveFileOutput可以同时在同一个AVCaptureSession上运行吗?
我快速给了它,发现当我添加额外输出时,我的AVCaptureVideoDataOutput停止接收信息.
如果我能让它工作,我希望这意味着我可以简单地使用第二个输出以高帧率录制视频,并在用户停止录制后对视频进行后期处理.
任何帮助将不胜感激.
我一直在玩OpenCV,并且有很多试验和错误已经设法学习如何检测照片中的圆圈(硬币).一切都很好,除非我直接将硬币放在一起(如下所示,忽略了第二张图像倒置的事实).

看起来因为硬币是如此接近,cvFindContours认为它们是同一个对象.我的问题是如何将这些轮廓分成单独的对象,或者获得已经分离的轮廓列表.
我用于cvFindContours的参数是:
cvFindContours( img, storage, &contour, sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE, cvPoint(0, 0) );
Run Code Online (Sandbox Code Playgroud)
任何帮助或建议将不胜感激.
我一直试图从.mov文件中提取音频一段时间,我似乎无法让它工作.具体来说,我需要提取音频并将其保存为.aif或.aiff文件.
我尝试使用AVMutableComposition,并将mov文件作为AVAsset加载.在最终使用AVAssetExportSession(将输出文件类型设置为AVFileTypeAIFF,这是我需要它的格式)之前,仅将音轨添加到AVMutableComposition,将文件写入aif.
我收到一个错误,说这个输出文件类型无效,我不确定为什么:
*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'输出文件类型无效'
AVAssetExportSession *exporter;
exporter = [[AVAssetExportSession alloc] initWithAsset:composition presetName:AVAssetExportPresetHighestQuality] ;
exporter.audioMix = audioMix;
exporter.outputURL=[NSURL fileURLWithPath:filePath];
exporter.outputFileType=AVFileTypeAIFF; //Error occurs on this line
Run Code Online (Sandbox Code Playgroud)
我不确定上述方法是否有效,但我可能会认为我只是做错了.但是,如果有人知道另一种方法来实现我想要实现的目标,那么任何帮助都会非常感激.
如果需要,我可以发布更详细的代码,但目前我正在尝试其他一些方法,所以现在它有点乱.
谢谢您的帮助!
我一直在寻找答案,但没找到任何东西.我正在尝试使用iOS 5 Beta的CIAffineTransform,并遇到了一个问题.文档说'inputTransform'属性接受NSAffineTransform,但据我所知,没有办法在iOS中实例化其中一个,我所做的所有研究都告诉我这个特定的类适用于MacOS(正确的我)如果我错了)
如果是这样,那么我将什么值放入inputTransform?
这里有一些简单的代码来解释我想要实现的目标.
CIImage* result = "Some CIImage";
CIFilter* filter = [CIFilter filterWithName:@"CIAffineTransform"];
[filter setValue:result forKey:kCIInputImageKey];
[filter setValue:transform forKey:@"inputTransform"]; //What type/class of value do I set here if I can't use an NSAffineTransform
result = [filter outputImage];
Run Code Online (Sandbox Code Playgroud)
任何帮助都将被大大改编.
我目前正在尝试使用CoreImage,学习如何将CIFilters应用于相机Feed.目前我已经成功地拍摄了相机,应用过滤器并以视频的形式将Feed写入AVAssetWriter,但我遇到的一个问题是,在过滤过程中,我实际裁剪了图像数据所以它总是有方形尺寸(项目的其他方面需要)
我的流程如下:
没有将CGImageRef绘制到上下文中,这就是我得到的:

在将CGImageRef绘制到上下文之后,这就是我得到的:

理想情况下,我只想告诉CMSampleBufferRef它有新的维度,以便省略附加信息.但我想知道我是否必须完全创建一个新的CMSampleBufferRef.
任何帮助将不胜感激!
ios ×4
avfoundation ×3
audio ×1
c ×1
core-image ×1
core-video ×1
extract ×1
geometry ×1
mov ×1
opencv ×1