Tag: gpuimage

我试图让video过滤工作

我试过GPUImage库中的例子。 我尝试了'SimpleVideoFileFilter',但我看到它的滑动黑屏。 我试图通过我自己做同样的事情,我得到了完美的图像。 但我无法真正了解videostream程。 从项目本身拍摄video的例子? 从Mac文件夹? 或从iPhone的video? 我没有Apple开发者帐户,所以我无法真正在我的设备上进行testing。 我find了方法把一个随机(.m4v)文件在iPhone模拟器,并试图播放/过滤video。 有谁有这个问题? 我想现在只是从iPhone模拟器或资源文件播放video..我真的不知道它的作品在哪里。 我试过这个链接,没有运气。 下面是我们可以在GPUImage中find的示例的一部分: – (void)viewDidLoad { [super viewDidLoad]; NSURL *sampleURL = [[NSBundle mainBundle] URLForResource:@"sample_iPod" withExtension:@"m4v"]; movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL]; movieFile.runBenchmark = YES; movieFile.playAtActualSpeed = YES; filter = [[GPUImagePixellateFilter alloc] init]; // filter = [[GPUImageUnsharpMaskFilter alloc] init]; [movieFile addTarget:filter]; // Only rotate the video for […]

当用户触摸屏幕时消除模糊对图像的影响

我想删除模糊的具体位置用户在屏幕上触摸。 当用户在屏幕上移动他的手指只有当前触摸部分将具有清晰的图像。 rest所有屏幕将有模糊图像。 当用户从屏幕上移开他的手指时,完整的图像会再次模糊。 到目前为止,我所做的是:添加了一个GPUImage框架来使图像模糊。 在图片的顶部,我有一个原始图像。 最初是隐藏的。 我想要的是,当用户点击屏幕上,然后显示该选定部分的原始图像只有特定的圆。 谢谢

GPUImage – 如何用GPUImagePicture链接filter?

我想要在GPUImage FilterShowcase中的“哈里斯angular检测”,但与GPUImagePicture而不是GPUImageVideoCamera实现相同的效果。 我不能让filter链工作。 这是我现在的代码: -(UIImage*)addHarrisCornerToImage:(UIImage*)inputImage { GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:inputImage]; GPUImageHarrisCornerDetectionFilter *cornerDetectionFilter = [[GPUImageHarrisCornerDetectionFilter alloc] init]; [(GPUImageHarrisCornerDetectionFilter *)_filter setThreshold:0.20]; GPUImageCrosshairGenerator *crosshairGenerator = [[GPUImageCrosshairGenerator alloc] init]; crosshairGenerator.crosshairWidth = 15.0; [crosshairGenerator forceProcessingAtSize:CGSizeMake(480.0, 640.0)]; [(GPUImageHarrisCornerDetectionFilter *)_filter setCornersDetectedBlock:^(GLfloat* cornerArray, NSUInteger cornersDetected, CMTime frameTime) { [crosshairGenerator renderCrosshairsFromArray:cornerArray count:cornersDetected frameTime:frameTime]; }]; GPUImageAlphaBlendFilter *blendFilter = [[GPUImageAlphaBlendFilter alloc] init]; [blendFilter forceProcessingAtSize:CGSizeMake(480.0, […]

xcode 5:GPUImage筛选器代码错误(需要帮助)

我已经创build了一个button,它可以在触摸时为图片添加效果。 但目前在代码中有一些错误: 希望有人能说我什么是错的(我是开发iOS应用程序的新手)。 错误: 其他错误:

GPUImage灰度和contarstfilter生成内存警告

我正在创build一个将图像转换为二进制图像的应用程序。 为此,我正在使用GPUimage框架。 首先它会将其转换为灰度,而不是改变contarst,而不是将其转换为Binarize图像。 当我使用灰度和对比度filter,它会产生内存警告和一些时间,如果我尝试在一个应用程序崩溃转换多个图像(让我们说10)。 这是我的代码: – (UIImage *) doBinarize:(UIImage *)sourceImage { UIImage * grayScaledImg = [self grayImage:sourceImage]; grayScaledImg = [self contrastImage:grayScaledImg]; GPUImagePicture *imageSource = [[GPUImagePicture alloc] initWithImage:grayScaledImg]; GPUImageAdaptiveThresholdFilter *stillImageFilter = [[GPUImageAdaptiveThresholdFilter alloc] init]; stillImageFilter.blurRadiusInPixels = 8.0; [imageSource addTarget:stillImageFilter]; [imageSource processImage]; UIImage *retImage = [stillImageFilter imageByFilteringImage:grayScaledImg]; UIImage * aretImage = [self sharpenImage:retImage]; [imageSource removeAllTargets]; return aretImage; […]

GPU图像filter禁用iOS中的audio

我已经使用GPUImage框架实现了video文件pipe理器,并且应用了所有filter,但是如果使用filter播放video,audio将被禁用。 但是,如果我在mpmovieplayeraudio播放相同的电影url与video一起播放。 以下是我的代码: movieFile = [[GPUImageMovie alloc] initWithURL:self.videoURL]; movieFile.runBenchmark = YES; movieFile.playAtActualSpeed = YES; [movieFile addTarget:filter]; [filter setInputRotation:kGPUImageRotateRight atIndex:0]; GPUImageView *view = [[GPUImageView alloc] init]; view.tag = 529; view.frame = CGRectMake(0, 80, 768, 820); [filter addTarget:view]; [self.view addSubview:view]; NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.m4v"]; unlink([pathToMovie UTF8String]); NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie]; movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL […]

ios – 从纹理caching创build的video是黑色的

我正在尝试使用Brad Larson的答案在iOS上进行高效的video处理。 这个答案是关于如何在不使用glReadPixels情况下高效地获得像素缓冲区的输出。 据我所知,必须从AVAssetWriterInputPixelBufferAdaptor pixelBufferPool中加载一个像素缓冲区,将其链接起来,然后在每个渲染循环之后调用 CVPixelBufferUnlockBaseAddress(buffer, CVPixelBufferLockFlags(rawValue: 0)) writerAdaptor?.append(buffer, withPresentationTime: currentTime) 但是,当我尝试这样做,输出video是黑色的。 原来的答案显示了代码片段,而不是完整的设置。 我也看过GPUImage,但令人惊讶的是它使用glReadPixels : https : //github.com/BradLarson/GPUImage/blob/167b0389bc6e9dc4bb0121550f91d8d5d6412c53/framework/Source/Mac/GPUImageMovieWriter.m#L501 这里是我想要工作的代码的一个稍微简化的版本: 1)开始摄像机录制 override func viewDidLoad() { // Start the camera recording session = AVCaptureSession() session.sessionPreset = AVCaptureSessionPreset1920x1080 // Input setup. device = AVCaptureDevice.devices(withMediaType: AVMediaTypeVideo).first as? AVCaptureDevice input = try? AVCaptureDeviceInput(device: device) session.addInput(input) // Output setup. let output […]

GPUImage:GPUImageToneCurveFilter不起作用

我已经设法在我的应用程序中使用GPUImage,并尝试在button点击时将滤镜放入我的照片中,但还有另一个问题。 GPUImageFilter *selectedFilter; if (sender.tag == 1) { selectedFilter = [[GPUImageFilter alloc] init]; } else if (sender.tag == 2) { selectedFilter = [[GPUImageThresholdEdgeDetection alloc] init]; } else if (sender.tag == 3) { selectedFilter = [[GPUImageSketchFilter alloc] init]; } else if (sender.tag == 4) { selectedFilter = [[GPUImageToneCurveFilter alloc] initWithACV:@"crossprocess.acv"]; } else if (sender.tag == 5) […]

与GPUImage混合:如何控制第一个图像上的第二个图像的位置

我使用下面的代码来使用Brad Larson的GPUImage框架来混合两个图像。 有没有办法控制相对于baseImage的topImage的位置? 现在,它将topImage放在baseImage的中间。 GPUImageMultiplyBlendFilter *overlayBlendFilter = [[GPUImageMultiplyBlendFilter alloc] init]; GPUImagePicture *pic1 = [[GPUImagePicture alloc] initWithImage:baseImage]; GPUImagePicture *pic2 = [[GPUImagePicture alloc] initWithImage:topImage]; [pic1 addTarget:overlayBlendFilter]; [pic1 processImage]; [pic2 addTarget:overlayBlendFilter]; [pic2 processImage]; UIImage *blendedImage = [overlayBlendFilter imageByFilteringImage:filteredimage]; [imageView setImage:blendedImage];

GPUImageLookupFilter与强度控制?

我正在为我的项目使用Brad Larson的GPUImage框架。 我试图find一种方法来实现强度控制GPUImageLookupFilter并通过https://github.com/BradLarson/GPUImage/issues/1485 gl_FragColor = mix(textureColor,vec4(vec3(newColor),1.0),mixTexture); “textureColor”是原始纹理,“newColor”是LookupFilter结果,mixTexture是(0〜1.0)的Alpha值,可以认为是强度variables。 我不知道如何实现这一点,我不知道如何实现OpenGL着色器。 任何人都可以告诉我在哪里添加这个代码来实现强度控制GPUImageLookupFilter ?