I am making an app which will allow the user to click a picture and then apply various effect filters on the picture. Basically, I want to create an app similar to Pudding Camera.
I researched a lot and came across 3 options to do this:-
1) Use OpenCV and implement all the effects manually [not my first priority as it uses a lot of time, but will do this if all else is unfruitful].
2) Use a library like ImageMagick / ImageJ / Marvin by porting to Android via NDK.
3) Use a library like jjil.
Now I want to know which is the best way to proceed. My priorities are:-
1) I want to be able to tweak the effects and maybe create new custom effects of my own.
2) I want it to run fast as I want my app to be quick and responsive.
3) I want to use a library which is easiest to learn as I am not an expert in image proccesing.
Please help!
OpenCV works well for Android 2.3 and beyond, you can consider FastCV by Qualcomm, which is like OpenCV but more optimized for Qualcomm chips.
I don't not recommend JJIL, it hasn't been updated for ever and only works on very old version of Android.
Best lib for to use and to learn. Catalano Framework. Check this article, you will learn quickly with few lines of code, contains several examples. There is several filters running in multithread, you can check in this namespace Catalano.Imaging.Concurrent.Filters
Related
My Situation
I want to build an Application that can recognize an Image to produce a corresponding model.
i.e. I focus the camera to show a printed image on the card that is designed by myself ( apple logo ) , then it will show a 3D model(.md2) on the screen which is also designed by myself.
I have googled many framework that worked on both Android & iOS, but the documentations are very limited and the trial version does not support me to test it.
for example,
http://www.metaio.com/sdk/
But their demo is not comprehensive enough to suite my situation
My Question
1.Would anyone can share their experience of developing with AR framework (not the AR core) on Android & iOS?
2.Is there any framework that support me to add a image as a key then it will map to my model with just a couples line of codes?
3.if Q2 is not possible, is there any approaches of some framework can also archive the some goal but more complex ?
//Logic flow
String key = "APPLE";
sdk.putKeyImage(key,apple.png);
...
if (sdk.identifiedAs(key)){
//Do something
//Example
sdk.showApple3DModel();
play(showSnakeEatApple.mp4);
}
I'm an android app developer. So according to my experince for android, you can go for
Vuforia (https://developer.vuforia.com/resources/sdk/android)
Wikitude (http://www.wikitude.com/developer/documentation/android)
These above 2 are enough good to implement AR app in android.
Vuforia is having well documented, also they have more libraries & mainly those are free. & Wikitude is best for making apps faster. I recommend you to use any of these for your AR app development in android.
I guess you should compare several AR frameworks to find a proper solution for your problem. Many different AR tools come to my mind. For example, Vuforia, LayAR, Kudan AR. To take a deeper look at the variety of possible options read the comprehensive comparison of the most popular frameworks: http://cases.azoft.com/top-5-tools-creating-augmented-reality-apps/
yes i did work on it not much but little bit i did research on augmented reality and after research i found one open source and cross platform well known sdk its name is
VUFORIA SDK
there are various SDK you find on google but trust me VUFORIA is best and flexible who gives lots of option
for that you need to install NDK in eclipse cause it have core cpp code who compile by NDK in eclipse
video tutorial click here
sdk and documentation click here
steps click here
hope it will be helpful for you thank you happy coding
I have some issues in working with Android layouts and make them adapt for all screen sizes..
I have found that there is an alternative solution : Android Bootstrap http://www.androidbootstrap.com/ for that and provide nice UI components (buttons etc...).
Since I'm developing natively, is this kind of frameworks won't make the App runs slower ?
Is this only a UI framework like for the web (Bootstrap from twitter) ? if not, can we use with it everything in Android (Camera, micro etc...) and Can we include some Jars like Zbar ?
Thank you.
I have found that there is an alternative solution : Android Bootstrap
It is not an "alternative solution". You still will need to be "working with Android layouts and make them adapt for all screen sizes", because Android Bootstrap does not change much related to that.
and provide nice UI components (buttons etc...)
It uses the same Android widget set that all other Android apps use.
is this kind of frameworks won't make the App runs slower ?
There is nothing in an Android Bootstrap project that would necessarily make the app significantly slower.
Is this only a UI framework like for the web (Bootstrap from twitter) ?
It is not even that. It is a starter project that demonstrates how to tie together a dozen or so open source libraries for Android app development. You can think of it as an extended version of the templates used to create new applications and activities in Eclipse or Android Studio.
This is not to say that Android Bootstrap is bad -- far from it. However, it does not resemble your description.
can we use with it everything in Android (Camera, micro etc...)
I have no idea what "micro" is with respect to Android. Since you are writing an Android application, just like any other Android application, you can use it with whatever parts of Android you choose to.
Can we include some Jars like Zbar ?
I see no reason why not.
It is very common for such templating engines not to have exactly most components you need. for android it is basicallly about adding support third party libraries to get the exact experience you need.
Thus you may want to consider adding more or lacking parts by leveraging some external libraries like those from HERE
In my app, i need to take continuous images and make them as panoramic.For that it requires android sensor rotation calculations.Accelerometer pitch,roll,azimuth returns values based on orientation.But it is not accurate,ie suppose if a image is taken in the beginning as the starting image,then next image should be clicked only after sufficient device rotation.Likewise it should take some 5 - 6 images and make one panoramic image.
Here the problem is:
How to calculate the device rotation(using augmented reality if possible) and take images automatically?
Any help is appreciated.Thanks
My answer is actually not about gyroscope, and I don't know if it's still actual for you, but hope it will be helpful for someone.
Panorama feature is already implemented in standard android camera at least since Android 4.0 (perhaps it was available in even earlier versions but I'm not sure, you can check it), so since source code is open for everyone, it might be the easiest way just to copy required functionality.
Although you can download source of apps from https://android.googlesource.com/ (you want LegacyCamera or Camera), you can't just open project of any standard app in Eclipse or other IDE. For example, LegacyCamera depends on Gallery2 and other dependences that might be hard to be resolved.
I spent several days trying to move panorama feature to separate project. You can download it from here: https://github.com/yankeppey/PanoramaSample . Several remarks:
Functional core (creating one panorama image from several ones, progress notices, etc) is on native part.
I used java code from from LegacyCamera which was used in Android 4.0-4.1, not 4.2, because it was significantly easier for me. Native part is taken from 4.2, it has only minor changes inside and almost the same JNI interfaces.
This project is just to help you move panorama feature to your own app, it's not like kind of library, don't expect clean code without bugs, it's just pretty dirty and buggy project. If I have time I'll try to make it cleaner, but there is no warranty :)
I saw this live 3d wallpaper and was wondering how it is made, e.g. what engine should be used to make it? From what I found, Unity3D currently does not support making wallpaper...
If you would like a true 3d live wallpaper, you can check out Rajawali here:
https://github.com/MasDennis/RajawaliWallpaperTemplate
Follow his tutorials and utilize that template and you can make some really amazing live wallpapers. I use it myself and found it very fun and educational.
Check out this live wallpaper made with the Rajawali library:
https://play.google.com/store/apps/details?id=com.PM.AutumnGrove3DFREE
It's not mine but it definitely shows the potential with the Rajawali library.
Hopes this helps you and anyone else looking to make a 3d live wallpaper.
I don't know if you can make 3D wallpapares, but try with
AndEngine
or
Cocos2D
Checkout Unity3D and the Unity2Eclipse plugin, it's the easiest way I've found. Be warned, it's still beta and you have to use Unity 3.4 to get it to work. I see a lot of Unity crashes in my error reports and my retention rate is pitiful
I've got some examples of what you can do if your into Sharks, Neon, Zombies and Birds they are worth checking out http://www.app8ite.com/live-wallpapers/
You can use Uni2LwP (not free) and Unity3D. This new plugin works very well with almost every version of Unity.
Check dev thread for more information : Forum
From analyzing the screenshot you've provided, it seems like a pretty simple scene, with some post-effects added on top of the final image. Unity engine makes it easy to do stuff like that, with its visual editor, good asset import pipeline and post-processing chains. There are others engines that you could use to achieve similar visual quality (Rajawali is a particular good example), but it'd be a much more tedious task.
The negative side of using Unity is that it is somewhat heavy - it's expected to have an APK of around 9 MB in size for an empty scene. This doesn't really matters if you have a resource-heavy live wallpaper, though.
I've recently released uLiveWallpaper - a Unity asset that makes it possible to create live wallpapers for Android using Unity 5. It is well-tested and reliable, creates projects for Android Studio, complete with placeholder code to get you started.
Check it out!
http://forum.unity3d.com/threads/ulivewallpaper-develop-android-live-wallpapers-with-unity-5.375255/
Are there any image libraries available for Android as seen in http://www.jhlabs.com/ip/filters/index.html? Or have some one ported the same? Thanks in advance.
I know this is an old topic, but in the absence of the AWT libraries I have started porting some image filters from the Marvin Image framework (found here)
I have set it up as a googlecode project here so feel free to go check it out.
I don't believe there is a very elaborate set of them, but the graphics class contains a number of methods that are useful for some types of these operations.
For example, using the color matrix you could perform a convolution on an image. Depending on what you want to do, you may have what you need.
Samsung S Pen SDK Has image filters. The filters are implemented for ARM devices. Here's a link: S Pen SDK. Works fine for any Android devices with or without S Pen.