标签: gpuimage

我什么时候应该调用 CVPixelBufferLockBaseAddress 和 CVPixelBufferUnlockBaseAddress?

在 iOS6 中,我使用 OpenGL 在 AVFoundation 视频帧上进行一些渲染。我看过很多使用 CVPixelBufferLockBaseAddress 和 CVPixelBufferUnlockBaseAddress 的示例代码,但我不清楚何时执行锁定和解锁,或者为什么要这样做。当CPU修改内存时我应该锁定地址吗?或者我应该在 GPU 读取数据时锁定它?我应该什么时候解锁?为什么我想要解锁?我已经看到了Stack Overflow 的答案,但它并没有完全回答我的问题。

avfoundation ios opengl-es-2.0 gpuimage

5
推荐指数
1
解决办法
3393
查看次数

实时混合UIImages

是否可以像iOS 7中的通知中心中的箭头一样进行实时混合?我想知道UIImage是否可以在柔和的光线下使用内容(UIView或CALayer),因此背景图像可以移动,混合图像可以保留在一个位置.

我想让它成为你可以拥有UIImage的地方,你可以将blendMode属性设置为你需要的任何混合模式,例如, imageView.blendMode = kCGBlendModeSoftLight;

我尝试使用GPUImage,但我无法弄清楚如何做我需要的东西.任何帮助,将不胜感激.

到目前为止,我用来设置UIImage的混合模式的代码是这样的; 但是,如果移动背景视图,则不会更新UIImage上的混合.

    //blur the background
    GPUImageGaussianBlurFilter *blurFilter = [[GPUImageGaussianBlurFilter alloc] init];
    blurFilter.blurRadiusInPixels = 50.0f;
    blurFilter.blurPasses = 4;
    UIImage *blurredBackground = [blurFilter imageByFilteringImage:[UIImage imageNamed:@"Background.png"]];

    //make the blended images
    UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 2.0f);
    CGContextSetInterpolationQuality(UIGraphicsGetCurrentContext(), kCGInterpolationHigh);
    [blurredBackground drawInRect:self.view.bounds blendMode:kCGBlendModeNormal alpha:1.0];

    [[UIImage imageNamed:@"BarLineImage.png"] drawInRect:CGRectMake(0, self.view.bounds.size.height - 31, self.view.bounds.size.width, 1) blendMode:kCGBlendModeSoftLight alpha:1.0];

    [[UIImage imageNamed:@"Equalizer-th.png"] drawInRect:CGRectMake(65, self.view.bounds.size.height - 30, 30, 30) blendMode:kCGBlendModeSoftLight alpha:1.0];
    [[UIImage imageNamed:@"Player-th.png"] drawInRect:CGRectMake(145, self.view.bounds.size.height - 30, 30, 30) blendMode:kCGBlendModeSoftLight alpha:1.0];
    [[UIImage imageNamed:@"Container-th.png"] drawInRect:CGRectMake(225, self.view.bounds.size.height - …
Run Code Online (Sandbox Code Playgroud)

objective-c uiimage ios gpuimage ios7

5
推荐指数
1
解决办法
1234
查看次数

在 Android 上录制视频时添加叠加层

我想在我的 Android 设备中通过相机录制视频。我需要在录制的电影上添加叠加图像。在 iOS 中,我会使用GPUImage。在 Android 中,我找到了Android GPUImage。我尝试使用它,但我没有找到任何方法在视频录制时添加任何过滤器。在提供的示例中,我可以添加仅用于拍照的过滤器。有什么方法可以使用Android GPUImage使用过滤器录制视频?有没有其他方法可以实时在录制视频上添加图像叠加?如果没有,是否有任何方法可以在后期处理中添加覆盖在录制视频上的图像?

video android gpuimage android-gpuimageview

5
推荐指数
1
解决办法
4224
查看次数

使用 GPUimage 进行模板匹配

我正在开发一个 iOS 应用程序,它正在处理图像以查找与模板图像匹配的图像部分。使用 OpenCV 实现相同,但 OpenCV 的当前实现不支持 iOS GPU。

我是 GPUImage 框架的新手,所以我需要知道是否可以使用 GPUImage 来做到这一点?如果可能,如何?

image-processing template-matching ios gpuimage

5
推荐指数
0
解决办法
267
查看次数

在 Swift 上使用 GPUImage 过滤器捕获图像

我正在使用 GPUImage 框架进行图像过滤器。

我在相机上应用了 ToonFilter() 以获得卡通滤镜效果。

我的问题是在使用 GPUImage 使用 ToonFilter 效果在相机上捕获图像时。

下面是使用 GPUImage 相机显示 ToonFilter 的代码,并捕获具有相同效果的新图像。

请指导我如何使用相同的过滤器捕获图像?

注意:我能够成功地打开带有 ToonFilter 效果的相机 - 问题仅在于捕获带有滤镜效果的新图像。

代码 :

import UIKit
import GPUImage
import AVFoundation

class SelfieFilterVC: UIViewController, UISplitViewControllerDelegate  {

    @IBOutlet var filterSlider: UISlider?
    @IBOutlet var filterView: RenderView?

    let videoCamera:Camera?
    var blendImage:PictureInput?

    override func viewDidLoad() {

        super.viewDidLoad()

        self.filterOperation = FilterOperation(
            filter:{ToonFilter()},
            listName:"Toon",
            titleName:"Toon",
            sliderConfiguration:.disabled,
            sliderUpdateCallback: nil,
            filterOperationType:.singleInput
        )

        self.configureView()
    }

    required init(coder aDecoder: NSCoder)
    {
        do {
            videoCamera = try Camera(sessionPreset:AVCaptureSessionPreset640x480, location:.backFacing)
            videoCamera!.runBenchmark = …
Run Code Online (Sandbox Code Playgroud)

image-capture ios gpuimage swift

5
推荐指数
1
解决办法
1206
查看次数

如何在 iOS 应用程序中使用 Lightroom Preset 作为照片或视频的滤镜?

如何通过GPUImageCore Graphics或通过Lightroom Presets中的任何其他框架将滤镜应用到图像。

如何在图像上单独使用 Lightroom 预设元素(对比度、饱和度、色调、清晰度等)。

单独的 Lightroom 预设元素:

在此输入图像描述

core-graphics preset lightroom ios gpuimage

5
推荐指数
1
解决办法
1299
查看次数

如何在 iOS 应用程序中从 Adob​​e Lightroom 重现高光和阴影效果

我正在尝试在我的 iOS 应用程序中重现 Adob​​e Lightroom 效果。目前我正在使用GPUImage所有效果,但发现很难重现高光和阴影效果。我也已经尝试使用CIHighlightShadowAdjustCIFilter 但它给了我错误的结果。

所以我正在寻找至少 Lightroom 用于此效果的算法。它们都与亮度更改非常相似,但似乎它们仅用于更改图片的亮/暗部分,具体取决于是否使用高光或阴影。

谁能指出我需要寻找的正确方向才能产生相同的效果?如何仅更改图片的暗/亮部分的亮度?

示例如下 1. 左为原始图像,右为经过 +100 高光调整的图像(可能范围 -100;100,默认为 0)。

亮点+100

你可以看到天空(图像较亮的部分)有不同的亮度,但雕像几乎没有改变。

  1. 左边是原始图像,右边是+100阴影调整的图像(可能的范围-100;100,默认为0)。

阴影 + 100

在这里你可以看到雕像(图片较暗的部分)的亮度变化很大,但天空几乎没有变化。

image-processing ios gpuimage

5
推荐指数
1
解决办法
1430
查看次数

Google Play 64 位要求

我正在尝试向我的应用程序提交更新,在上传Android 应用程序包后,我收到此错误消息:

在此处输入图片说明

在分析了Android App bundle之后,我已经阅读了文档并遵循了所有步骤:

在此处输入图片说明

我的应用程序是一个照片编辑器应用程序,纯java,我没有使用任何本机代码,但我使用了一些第三方库,例如

implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
Run Code Online (Sandbox Code Playgroud)

如上图所示,它支持 64 位

这是我的 Gradle 文件:

    android {
        compileSdkVersion 29
        dexOptions {
            preDexLibraries = false
            javaMaxHeapSize "4g"
        }
        defaultConfig {
            applicationId "maa.abc"
            minSdkVersion 18
            targetSdkVersion 29
            versionCode 14
            versionName "1.2.0"
            multiDexEnabled true
            renderscriptTargetApi 28
            renderscriptSupportModeEnabled true
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
            ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' 'armeabi'
        }
        buildTypes {
            release {
                minifyEnabled true
                shrinkResources true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
            debug {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        compileOptions {
            sourceCompatibility …
Run Code Online (Sandbox Code Playgroud)

java 64-bit android google-play gpuimage

5
推荐指数
1
解决办法
533
查看次数

如何在 android Java 中使用 GPUImageFilters 编辑色调饱和度和亮度?

我想调整hue, saturation and luminace图像以specific color shades使用 OpenGLES 或 GPUImageFilter。

基本上应该是这样的 在此处输入图片说明

java android opengl-es image-processing gpuimage

5
推荐指数
1
解决办法
157
查看次数

opencv中的轮廓重复

我在opencv中遇到了一些findContours问题.输出中的数据太多,我知道正确使用层次结构是关键.鉴于以下来自opencv文档的图片:

Opencv Docs

除了2a和3a之外,我想画出所有的轮廓.遍历层次结构和findContour参数以实现该结果的正确方法是什么?

opencv image-processing hierarchy gpuimage

4
推荐指数
1
解决办法
1986
查看次数