我想开发实时面部过滤器作为MSQRD/Snapchat实时过滤器,但是如果我使用增强现实框架并检测面部或使用核心图像来检测面部和相应处理,我无法知道如何继续.如果有人知道如何实现这一点,请告诉我?
以下是我迄今为止所做的一些研究: - 我使用Google Vision API检测各种面部标记.以下是参考:https://developers.google.com/vision/introduction
这是获取面部标志的示例代码的链接.它使用相同的Google Vision API.这是参考链接:https://github.com/googlesamples/ios-vision
我已经浏览了互联网上的各种博客,其中MSQRD基于谷歌的云愿景.以下是它的链接:https://medium.com/@AlexioCassani/how-to-create-a-msqrd-like-app-with-google-cloud-vision-802b578b30a0
对于Android,这里是参考:https: //www.raywenderlich.com/158580/augmented-reality-android-googles-face-api
有多个付费SDK完全填满了目的.但它们的价格很高.所以无法负担得起.例如:
有可能有一些人认为这个问题与此重复:像MSQRD/SnapChat这样的 面部过滤器实现
但该线程差不多是1.6岁,没有正确答案.
我已经阅读了这篇文章:https: //dzone.com/articles/mimic-snosaic-filters-programmatically-1
它描述了实现所需结果的所有必要步骤.但他们建议使用自己制作的SDK.
根据我的研究,没有足够好的材料可以帮助完全填充所需的结果,如MSQRD面部过滤器.
还有一个Github存储库周围有相同的实现,但它没有提供相同的信息. https://github.com/rootkit/LiveFaceMask
现在我的问题是:
如果我们使用Google Vision API(甚至使用DiLib)获得面部标志,我可以在其上添加2d或3d模型.在这种格式中需要这样做需要一些X,Y坐标和顶点计算.
注意:我已经浏览了Googles"GooglyEyesDemo",它在眼睛上添加了预览图层.它基本上增加了一个面部视图.所以我不想在它上面添加UIView一维预览图层.附图供参考:
https://developers.google.com/vision/ios/face-tracker-tutorial
创建模型:我还想知道如何为像MSQRD这样的实时过滤器创建模型.我欢迎任何软件或格式建议.希望我所做的研究能够帮助他人,而其他人的经验可以帮助我达到预期的效果.如果需要更多详细信息,请与我们联系.**
谢谢哈利
我一直在尝试使用Swipe Gesture Recognizer和嵌入式导航控制器在我的应用程序中的视图控制器之间实现滑动导航,但它看起来甚至不接近Snapchat的导航.
实现此类功能的最有效和最合适的方法是什么?
我真的是Swift的新手和编程,我很感激每一个有用的评论.
我正在构建一个使用QR码连接用户的应用程序,类似于Snapchat允许用户在Snapchat上互相添加的方式.
我希望使用更加美观的QR码替代品,类似于Snapchat的Snapcode.想知道如何在iOS应用程序中完成它吗?
我试图允许用户在静态图像上的过滤器之间滑动.这个想法是当滤镜在其上方滚动时图像保持原位.Snapchat最近发布了一个实现此功能的版本.这段视频显示了我想要在1:05完成的事情.
到目前为止,我已经尝试将三个UIImageView放入原始图像的左侧和右侧的滚动视图中,并使用scrollView的contentOffset.x调整它们的帧origin.x和size.width.我发现这种想法在另一篇文章在这里.将左侧和右侧的内容模式更改为UIViewContentModeLeft和UIViewContentModeRight没有帮助.
接下来,我尝试将所有三个UIImageView堆叠在一起.我制作了两个CALayer蒙版并将它们插入到堆栈左侧和右侧的scrollView中,因此当您滚动蒙版时,将揭示过滤后的图像.这不适合我.任何帮助将不胜感激.
基本上,我重新问这个问题,但是在android上实现它.
我试图允许用户在静态图像上的过滤器之间滑动.这个想法是当滤镜在其上方滚动时图像保持原位.Snapchat最近发布了一个实现此功能的版本.这段视频显示了我想要在1:05完成的事情.
我尝试使用覆盖填充列表并使用onFling和onDraw进行分页,但是我丢失了动画.有没有办法可以用ViewPager完成?
编辑:根据要求,我提供了覆盖视图分页的实现.它使用位于图像视图顶部的透明png图像填充viewpager.此外,此代码在C#中,因为我使用的是Xamarin Android.对于那些不熟悉C#的人来说,它与Java非常相似
...
static List<ImageView> overlayList = new List<ImageView>();
...
public class OverlayFragmentAdapter : FragmentPagerAdapter
{
public OverlayFragmentAdapter(Android.Support.V4.App.FragmentManager fm) : base(fm)
{
}
public override int Count
{
get { return 5; } //hardcoded temporarily
}
public override Android.Support.V4.App.Fragment GetItem(int position)
{
return new OverlayFragment ();
}
}
public class OverlayFragment : Android.Support.V4.App.Fragment
{
public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.Inflate (Resource.Layout.fragment_overlay, container, false);
LinearLayout …
Run Code Online (Sandbox Code Playgroud) 我试图使用TwoWayView库创建一个spannable recyclerView,如下图所示:https://github.com/lucasr/twoway-view
但是我无法获得所需的视图,并且遗漏了空单元格.
final SpannableGridLayoutManager.LayoutParams lp = (SpannableGridLayoutManager.LayoutParams) itemView.getLayoutParams();
//final int span1 = (itemId == 0 || itemId == 3 ? 2 : 1);
//final int span2 = (itemId == 0 ? 2 : (itemId == 3 ? 3 : 1));
int span1 = 0; //h
int span2 = 0; //w
switch(itemId)
{
case 0:
span1 = 2;
span2 = 1;
break;
case 1:
span1 = 2;
span2 = 1;
break;
case 2:
span1 = 2;
span2 …
Run Code Online (Sandbox Code Playgroud) 我想开发实时面部过滤器作为MSQRD/Snapchat实时过滤器,但我无法找到它的任何库或源代码,有人可以帮我找到关于这个主题的一些路径?
我遵循文档中的所有步骤并集成SnapSDK
到我的 iOS 应用程序中,但是当我单击应用程序中的共享按钮时,它会将我定向到snapchat
但最终出现错误提示
“发生错误。请稍后再试”。
private func didTapSnapchatShare(cell: FeedTableViewCell){
print("Share button tapped ")
cell.pauseVideoAndAnimation()
showProgressIndicator(view: self.view)
var watermarkStr = ""
if let userName = cell.cellDataSource?.user?.name {
watermarkStr = userName
}
let promptImage = cell.promptView?.asImage()
cell.slPlayer?.exportVideo(withWatermarkString: watermarkStr, promptImage: promptImage, completionHandler: { status, filePathURL in
DispatchQueue.main.async {
hideProgressIndicator(view: self.view)
if status, let filePathURL = filePathURL {
let url = URL(string: "snapchat://")!
if(!UIApplication.shared.canOpenURL(url)){
if let reviewURL = URL(string: "https://itunes.apple.com/us/app/snapchat/id447188370?mt=8"), UIApplication.shared.canOpenURL(reviewURL) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(reviewURL, options: [:], completionHandler: …
Run Code Online (Sandbox Code Playgroud)