我想使用 GPUImageColorMatrixFilter 实现带通滤波器。基本上,蓝色将等于 floor(blue - (k*red)) 并且红色和绿色最终都为零。我在哪里可以找到说明矩阵的列和行的含义的文档?
花了一段时间尝试为GPUImage构建一些快速示例并继续遇到此错误.我使用Homebrew添加了Appledoc并继续看到此错误.有什么想法吗?
我正在使用GPUImage处理本地照片,我正在使用它来初始化:
localImageSource = [[GPUImagePicture alloc] initWithImage:selectedImage];
Run Code Online (Sandbox Code Playgroud)
然后我添加过滤器,我可以在屏幕上看到它.
问题是我需要UIImage来保存它,但是当我打电话时:
[localImageSource imageFromCurrentlyProcessedOutput]
Run Code Online (Sandbox Code Playgroud)
我一无所获.
请帮忙!
我正在尝试将3个滤镜应用于图像.
一个rgbFilter具有其值恒定,亮度滤波器和饱和滤波器,两者都应该能够被修改并且图像应该更新.
我遵循了这里的建议.
我已经使用IB设置了一个UIView并将其类设置为GPUImageView.由于某种原因,图像没有显示.
我的步骤如下:
self.gpuImagePicture = [[GPUImagePicture alloc] initWithImage:image];
[self.gpuImagePicture addTarget:self.brightnessFilter];
[self.brightnessFilter addTarget:self.contrastFilter];
[self.contrastFilter addTarget:self.imageView];
Run Code Online (Sandbox Code Playgroud)
然后我调用它来设置rgb过滤器上的常量值
[self setRGBFilterValues]
Run Code Online (Sandbox Code Playgroud)
我之前使用以下方法设置过滤器:
- (void) setupFilters
{
self.brightnessFilter = [[GPUImageBrightnessFilter alloc] init];
self.contrastFilter = [[GPUImageContrastFilter alloc] init];
self.rgbFilter = [[GPUImageRGBFilter alloc] init];
}
Run Code Online (Sandbox Code Playgroud)
我错过了一步或为什么图像只显示什么?
我正在创建一个将图像转换为二进制图像的应用程序.为此,我使用GPUimage框架.首先,它会将其转换为灰度而不是变化,而不是将其转换为二值化图像.
当我使用灰度和对比度滤镜时,它会产生内存警告,如果我尝试在一个一个应用程序崩溃时转换多个图像(比方说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;
}
- (UIImage *) grayImage :(UIImage *)inputImage
{
GPUImageGrayscaleFilter *selectedFilter = [[GPUImageGrayscaleFilter alloc] init];
UIImage *filteredImage = [selectedFilter imageByFilteringImage:inputImage];
return filteredImage;
}
- (UIImage *) sharpenImage :(UIImage …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过使用包含图像过滤器的单例对象来优化一些图像过滤,以供我在任何地方使用.我遇到了一个问题,我相信我一次多次调用过滤器(显示几个单元格,下载图像后,显示之前,我正在使用过滤器处理图像,这可能几乎同时发生) .
我遇到了这个问题:
NSAssert(framebufferReferenceCount > 0, @"Tried to overrelease a framebuffer, did you forget to call -useNextFrameForImageCapture before using -imageFromCurrentFramebuffer?");
https://github.com/BradLarson/GPUImage/blob/master/framework/Source/GPUImageFramebuffer.m#L269
这是我的代码:
接口:
#import <GPUImage/GPUImage.h>
@interface GPUImageFilterManager : NSObject
+ (GPUImageFilterManager*)sharedInstance;
@property (nonatomic, strong) GPUImageiOSBlurFilter *blurFilter;
@property (nonatomic, strong) GPUImageLuminanceThresholdFilter *luminanceFilter;
@end
Run Code Online (Sandbox Code Playgroud)
执行:
#import "GPUImageFilterManager.h"
@implementation GPUImageFilterManager
+ (GPUImageFilterManager*)sharedInstance {
static GPUImageFilterManager *_sharedInstance = nil;
static dispatch_once_t oncePredicate;
dispatch_once(&oncePredicate, ^{
_sharedInstance = [GPUImageFilterManager new];
});
return _sharedInstance;
}
- (instancetype)init {
self = [super init];
if (self) {
self.luminanceFilter = …Run Code Online (Sandbox Code Playgroud) 我正在使用GPUImage在图像上应用过滤器和链过滤器.我正在使用UISlider来更改滤镜的值,并在滑块的值发生变化时在图像上连续应用滤镜.这样用户可以在更改值时看到输出是什么.
这导致处理速度非常慢,有时UI挂起或事件应用程序在收到内存不足警告时崩溃.
如何使用GPUImage实现快速过滤器实现.我似乎有一些应用程序正在应用过滤器,他们的UI甚至没有挂起第二.
谢谢,
这是我用作滑块值更改的示例代码.
- (IBAction) foregroundSliderValueChanged:(id)sender{
float value = ([(UISlider *)sender maximumValue] - [(UISlider *)sender value]) + [(UISlider *)sender minimumValue];
[(GPUImageVignetteFilter *)self.filter setVignetteEnd:value];
GPUImagePicture *filteredImage = [[GPUImagePicture alloc]initWithImage:_image];
[filteredImage addTarget:self.filter];
[filteredImage processImage];
self.imageView.image = [self.filter imageFromCurrentlyProcessedOutputWithOrientation:_image.imageOrientation];
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试对图像应用一些过滤器,所以我GPUImageFilterGroup 用来混合过滤器,但我的应用程序崩溃,这是我的代码:
- (IBAction)effectApply:(id)sender {
GPUImageFilterGroup *groupFilter = [[GPUImageFilterGroup alloc]init];
GPUImagePicture *stillImage= [[GPUImagePicture alloc]initWithImage:_img.image];
GPUImageBrightnessFilter *brightnessFilter = [[GPUImageBrightnessFilter alloc]init];
[brightnessFilter setBrightness:.4];
GPUImageContrastFilter *contrastFilter = [[GPUImageContrastFilter alloc]init];
[contrastFilter setContrast:2.0];
GPUImageExposureFilter *exposureFilter =[[GPUImageExposureFilter alloc]init];
[exposureFilter setExposure:.2];
[groupFilter addFilter:brightnessFilter];
[groupFilter addFilter:contrastFilter];
[groupFilter addFilter:exposureFilter];
[(GPUImageFilterGroup *) groupFilter setInitialFilters:[NSArray arrayWithObject: brightnessFilter]];
[(GPUImageFilterGroup *) groupFilter setTerminalFilter:exposureFilter];
[stillImage addTarget:filter];
[filter useNextFrameForImageCapture];
[stillImage processImage];
UIImage *currentFilteredVideoFrame = [filter imageFromCurrentFramebuffer];
_img.image = currentFilteredVideoFrame;
}
Run Code Online (Sandbox Code Playgroud)
崩溃日志:
2014-07-10 15:27:03.955 Effect Test[65595:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: …Run Code Online (Sandbox Code Playgroud) 我是GPUImage的新手,我将GPUImage添加到默认的单视图模板Xcode 5.1.1 app.我成功了静态GPUImage库,我正在尝试自述文件中的示例.我有iO S7.1作为基础SDK.该应用程序编译并加载,视频冻结.它有或没有过滤器冻结.我该如何解决?我想要显示实时相机预览,并应用过滤器
github repo中包含的示例编译并运行正常.
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset352x288 cameraPosition:AVCaptureDevicePositionBack];
videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
GPUImageFilter *customFilter = [[GPUImageSepiaFilter alloc]init];
GPUImageView *filteredVideoView = [[GPUImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320, 320)];
[self.view addSubview:filteredVideoView];
// Add the view somewhere so it's visible
[videoCamera addTarget:customFilter];
[customFilter addTarget:filteredVideoView];
[videoCamera startCameraCapture];
}
Run Code Online (Sandbox Code Playgroud)
这是我运行iOS 7.1的iPhone 5的屏幕截图.

我需要哪些步骤来释放GPUImageMovieWriter对象?如果我想安全地多次使用MovieWriter,该怎么办?
使用我创建的GPUImage在应用程序中发生内存泄漏.输出超过movieWriter视频两倍时发生内存泄漏.使用Instruments进行调试,结果表明GPUImageMovieWriter尚未发布.
实施概述
@property (nonatomic, strong) GPUImageMovieComposition *gpuMovieFileComp;
@property (nonatomic, weak) GPUImageMovieWriter *movieWriter;
@property (nonatomic, weak) GPUImageFilter *exportFilter;
@property (nonatomic, weak) AVMutableComposition *mixComposition;
@property (nonatomic, weak) AVMutableVideoComposition *transformVideoComposition;
@property (nonatomic, weak) AVMutableAudioMix *mutableAudioMix;
_gpuMovieFileComp = [[GPUImageMovieComposition alloc] initWithComposition:self.mixComposition andVideoComposition:self.transformVideoComposition andAudioMix:self.mutableAudioMix];
GPUImageMovieWriter *mr = [[GPUImageMovieWriter alloc]initWithMovieURL:_exportUrl size:CGSizeMake(MOVIE_SIZE_W, MOVIE_SIZE_H)];
[_gpuMovieFileComp enableSynchronizedEncodingUsingMovieWriter:mr];
_movieWriter = mr;
mr = nil;
_movieWriter.shouldPassthroughAudio = YES;
_movieWriter.encodingLiveVideo = NO;
_movieWriter.hasAudioTrack = YES;
_gpuMovieFileComp.playAtActualSpeed = YES;
_gpuMovieFileComp.audioEncodingTarget = _movieWriter;
[_gpuMovieFileComp addTarget:_exportFilter];
[_exportFilter addTarget:_movieWriter];
[_movieWriter setCompletionBlock:^{
weakSelf.gpuMovieFileComp removeTarget:weakSelf.exportFilter];
[weakSelf.exportFilter removeTarget:weakSelf.MovieWriter]; …Run Code Online (Sandbox Code Playgroud) 我正在研究基于GPUImageView的应用程序.我已正确实现所有功能,但我无法使用GPUImageview捕获屏幕截图.
在这里,我还在我的Github上附加了演示.
注意:我试图用renderInContext截取屏幕截图:但它对我没用.
gpuimage ×12
ios ×11
objective-c ×6
core-image ×1
iphone ×1
memory-leaks ×1
singleton ×1
swift ×1
xcode5 ×1