我有这个LUT png,然后在我的图像上应用这个LUT时却没有给出正确的结果。我的LUT格式是否不同,或者我没有正确应用过滤器?
UIImage *lutimage = [UIImage imageNamed:@"lut.png"];
GPUImagePicture *lookupImageSource = [[GPUImagePicture alloc] initWithImage:lutimage];
GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:imported_image];
GPUImageLookupFilter *lookupFilter = [[GPUImageLookupFilter alloc] init];
lookupFilter.intensity = 1.0;
[lookupFilter setInputRotation:kGPUImageRotateRight atIndex:1];
[stillImageSource addTarget:lookupFilter];
[lookupImageSource addTarget:lookupFilter];
[lookupFilter useNextFrameForImageCapture];
[stillImageSource processImage];
[lookupImageSource processImage];
imgview_main.image = [lookupFilter imageFromCurrentFramebuffer];
[[GPUImageContext sharedFramebufferCache] purgeAllUnassignedFramebuffers];
答案 0 :(得分:0)
HALD查找表是一种将一种输入颜色转换为一种输出颜色的方法。 HALD图像中的位置与像素颜色有关,而不是图像上的位置。
您要做的是在颜色查询表中添加一个小插图,因此在LUT的右下角,您将其变暗了。当您将此LUT应用于图像时,图像中的明亮像素变暗-就像您告诉过的那样。 LUT中的位置与图像像素位置无关,仅与RGB强度无关。
您需要某种覆盖滤镜(也许使用乘法),其覆盖图的位置确实要更改图片中的位置。
TL; DR:当您应该使用一些颜色查找转换代码来添加图像叠加层/蒙版时,您正在使用这些代码。