All Projects → wangyijin → Gpuimage X

wangyijin / Gpuimage X

Licence: other
A Cross-platform (for both Android & iOS) Framework for GPU-based Filters, Video and Image Processing.

Projects that are alternatives of or similar to Gpuimage X

Metalpetal
A GPU accelerated image and video processing framework built on Metal.
Stars: ✭ 907 (+488.96%)
Mutual labels:  image-processing, image, video-processing, filter
Gpuvideo Android
This library apply video filter on generate an Mp4 and on ExoPlayer video and Video Recording with Camera2.
Stars: ✭ 403 (+161.69%)
Mutual labels:  gpuimage, video-processing, filter
Bbmetalimage
A high performance Swift library for GPU-accelerated image/video processing based on Metal.
Stars: ✭ 677 (+339.61%)
Mutual labels:  gpuimage, image, filter
Gaussianblur
An easy and fast library to apply gaussian blur filter on any images. 🎩
Stars: ✭ 473 (+207.14%)
Mutual labels:  image-processing, image, filter
Ios tips
iOS的一些示例,持续更新中:1、AVFoundation 高仿微信相机拍摄和编辑 2、AVFoundation 人脸检测、实时滤镜、音视频编解码、GPUImage框架的使用等音视频相关内容 3、OpenGLES 4、LeetCode算法练习 5、iOS Crash防护和APM监控 6、WKWebView相关的内容 等........
Stars: ✭ 896 (+481.82%)
Mutual labels:  gpuimage, camera, filter
Computer Vision Video Lectures
A curated list of free, high-quality, university-level courses with video lectures related to the field of Computer Vision.
Stars: ✭ 154 (+0%)
Mutual labels:  image-processing, video-processing
Gil
Boost.GIL - Generic Image Library | Requires C++11 since Boost 1.68
Stars: ✭ 122 (-20.78%)
Mutual labels:  image-processing, image
Lerc
Limited Error Raster Compression
Stars: ✭ 126 (-18.18%)
Mutual labels:  image-processing, image
Mlv App
All in one MLV processing app that is pretty great. Download:
Stars: ✭ 150 (-2.6%)
Mutual labels:  image-processing, video-processing
Pimg
📷 Mini Image Lazy Loader for P(R)eact and Vue
Stars: ✭ 97 (-37.01%)
Mutual labels:  image-processing, image
Bbwebimage
A high performance Swift library for downloading, caching and editing web images asynchronously.
Stars: ✭ 128 (-16.88%)
Mutual labels:  image, filter
Wslivedemo
音视频,直播SDK,rtmp推流,录制视频,滤镜。百万用户,线上迭代半年,已经稳定。
Stars: ✭ 1,782 (+1057.14%)
Mutual labels:  gpuimage, camera
Aesthetics
Image Aesthetics Toolkit - includes Fisher Vector implementation, AVA (Image Aesthetic Visual Analysis) dataset and fast multi-threaded downloader
Stars: ✭ 113 (-26.62%)
Mutual labels:  image-processing, image
Gift
Go Image Filtering Toolkit
Stars: ✭ 1,473 (+856.49%)
Mutual labels:  image-processing, image
Bitmap
C++ Bitmap Library
Stars: ✭ 125 (-18.83%)
Mutual labels:  image-processing, image
Serverless Image Processor
AWS Lambda image processor
Stars: ✭ 106 (-31.17%)
Mutual labels:  image-processing, image
Pubgis
Generate maps of your position throughout PUBG gameplay
Stars: ✭ 135 (-12.34%)
Mutual labels:  image-processing, video-processing
Pictureselectorlight
Picture Selector Library for Android or 图片选择器
Stars: ✭ 145 (-5.84%)
Mutual labels:  camera, image
Filestack Android
Official Android SDK for Filestack - API and content management system that makes it easy to add powerful file uploading and transformation capabilities to any web or mobile application.
Stars: ✭ 140 (-9.09%)
Mutual labels:  image-processing, video-processing
Hltool
Go 开发常用工具库, Google2步验证客户端,AES加密解密,RSA加密解密,钉钉机器人,邮件发送,JWT生成解析,Log,BoltDB操作,图片操作,json操作,struct序列化
Stars: ✭ 151 (-1.95%)
Mutual labels:  image-processing, image

招聘

阿里巴巴职位(Java,算法等)内推,联系邮箱:[email protected]

GPUImage-x

License

Idea from: iOS GPUImage framework and Android GPUImage framework

The GPUImage-x framework is a cross-platform (for both Android and iOS) library, which aims to have something similar to GPUImage that let you apply GPU-accelerated filters to images, live camera video. Part of vertex and fragment shaders is taken from GPUImage.

The greatest strength of GPUImage-x is that it enables you to develop your Android and iOS project with one library. The core code of this framework is written in C++, and is exactly the same for both iOS and Android projects, which locates in GPUImage-x/proj.iOS/GPUImage-x/GPUImage-x/*.cpp and GPUImage-x/proj.android/GPUImage-x/library/src/main/cpp/*.cpp respectively. Also, you can extend your customized filters easily.

Requirements

  • Android 2.2 or higher
  • iPhone 4 or later
  • OpenGL ES 2.0

Usage - iOS

Frameworks Dependency

Following frameworks are required to be added to your project.

  • AVFoundation.framework
  • CoreMedia.framework

Sample Code

Filtering An Image

GPUImage::SourceImage* sourceImage;
GPUImage::Filter* filter;
GPUImageView* filterView = (GPUImageView*)self.view;
UIImage* inputImage = [UIImage imageNamed:@"test.jpg"];
GPUImage::Context::getInstance()->runSync([&]{
    // 1. create image source
    sourceImage = GPUImage::SourceImage::create(inputImage); 

    // 2. create a filter
    filter = GPUImage::GaussianBlurFilter::create();         

    // 3. build pipeline
    sourceImage->addTarget(filter)->addTarget(filterView);   

    // 4. proceed
    sourceImage->proceed();                                  
});

This will filter an image with Gaussian Blur effect. GPUImage-x function calls must be embraced between GPUImage::Context::getInstance()->runSync([&]{ and });, as GPUImage-x code should run in a seperate thread.

Filtering Camera Video

GPUImage::SourceCamera* camera;
GPUImage::Filter* filter;
GPUImageView* filterView = (GPUImageView*)self.view;
GPUImage::Context::getInstance()->runSync([&]{
    // 1. create camera source
    camera = GPUImage::SourceCamera::create(); 

    // 2. create a filter
    filter = GPUImage::BeautifyFilter::create();  

    // 3. build pipeline      
    camera->addTarget(filter)->addTarget(filterView);   

    // 4. start the camera and proceed
    camera->start();                                    
});

This will filter a camera video in real time with Beautify Effect.

Usage - Android

Gradle Dependency

repositories {
    jcenter()
}

dependencies {
    compile 'com.jin.gpuimage-x:gpuimage-x:1.0.1'
}

Sample Code

Filtering An Image

// 1. create image source
Bitmap bmp = BitmapFactory.decodeStream(getAssets().open("test.jpg"));
GPUImageSourceImage sourceImage = new GPUImageSourceImage(bmp);   

// 2. create a filter
GPUImageFilter filter = GPUImageFilter.create("GrayscaleFilter");

// 3. build the pipeline
sourceImage.addTarget(filter).addTarget((GPUImageView) findViewById(R.id.gpuimagexview));

// 4. let the GPUImage-x know which source to use
GPUImage.getInstance().setSource(sourceImage);

// 5. proceed
sourceImage.proceed();

This will filter an image with Graysacle effect. More filters can be applied in sequence if you want, e.g. sourceImage.addTarget(filter1).addTarget(filter2). ... .addTarget(filterN).addTarget((GPUImageView) findViewById(R.id.gpuimagexview));

Filtering Camera Video

// 1. create the camera source
GPUImageSourceCamera sourceCamera = new GPUImageSourceCamera(CameraSampleActivity.this);

// 2. create a filter
GPUImageFilter filter = GPUImageFilter.create("EmbossFilter");

// 3. build the pipeline
sourceCamera.addTarget(filter).addTarget((GPUImageView) findViewById(R.id.gpuimagexview));

// 4. let the GPUImage-x know which source to use
GPUImage.getInstance().setSource(sourceCamera);

This will filter a camera video in real time with Emboss Effect.

Sample Results

Here is a few samples of images applied by filters:

License

Copyright (C) 2017 Yijin Wang, Yiqian Wang

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

TODO

  • More filters and features will be added.
  • More platforms will be supported.

Donate

Your donation will be greatly appreciated :)

Alipay

Contact Info

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].