ios – 使用GPUImagePoissonBlendFilter进行混合

ios – 使用GPUImagePoissonBlendFilter进行混合,第1张

概述我试图使用GPU Image框架的GPU ImagePoissonBlendFilter来混合我的面部混合应用程序中的两个面.这是我的代码. - (void)applyPoissonBlendToImage:(UIImage *) rearFace withImage:(UIImage *) frontFace { GPUImagePicture* picture1 = [[G 我试图使用GPU Image框架的GPU ImagePoissonBlendFilter来混合我的面部混合应用程序中的两个面.这是我的代码.
- (voID)applyPoissonBlendToImage:(UIImage *) rearFace withImage:(UIImage *) frontFace {         GPUImagePicture* picture1 = [[GPUImagePicture alloc] initWithImage:rearFace];       GPUImagePicture* picture2 = [[GPUImagePicture alloc] initWithImage:frontFace];       GPUImagePoissonBlendFilter * poissonFilter = [[GPUImagePoissonBlendFilter alloc] init];       poissonFilter.mix = .7;       poissonFilter.numIterations = 200;       [picture1 addTarget:poissonFilter];       [picture1 processImage];       [picture2 addTarget:poissonFilter];       [picture2 processImage];      finalResultimage = [poissonFilter imageFromCurrentlyProcessedOutputWithOrIEntation:rearFace.imageOrIEntation];   }

即如你所见,我给出了两个图像(rearFace和frontFace)作为此方法的输入.图像正面是一种形状(通过连接相对的眼睛和嘴部位置形成的多边形形状),并且具有与后面图像相同的尺寸i.(为了匹配尺寸,我填充了多边形外部的空间绘图时用透明的颜色).

然而,混合不会像我预期的那样发生.即前面的锋利边缘没有适当地混入后面.在这里,我的假设是PoissonBlendFilter开始从其左上角而不是面的左上边界混合第二个图像.

问题:我觉得输入图像没有正确送入滤镜.我是否需要对输入图像应用某种掩模?任何人都可以指导我吗?

解决方法 使用双输入过滤器时,GPUImage有时会变得棘手.将混合滤镜添加到第一个源图像时,请明确指定纹理位置.所以代替:

[picture1 addTarget:poissonFilter];

试试这个:

[picture1 addTarget:poissonFilter atTextureLocation:0];

其余的(图片1或其他任何一个)不需要这个,但是有两个输入过滤器的小错误有时需要明确指定纹理位置.

总结

以上是内存溢出为你收集整理的ios – 使用GPUImagePoissonBlendFilter进行混合全部内容,希望文章能够帮你解决ios – 使用GPUImagePoissonBlendFilter进行混合所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1102789.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存