I'm struggling to find helpful, clear resources for OpenCV - android

I'm attempting to use OpenCV (on Android) in a project, however I'm struggling to find good resources. I've found example demos from the OpenCV site, and several tutorials, but many of them aren't very clear.
Are there any step-by-step, clear tutorials available, ideally with accompanying code?
(Particularly anything helpful with object recognition - so things such as colour detection, so likely colour histograms, and any means of feature recognition - possibly Haar Training. Though anything on OpenCV would be great!)
The (many) tutorials / demos I have found include the following -
OpenCV Guide
http://cgi.cse.unsw.edu.au/~cs4411/wiki/index.php?title=OpenCV_Guide
(One of the better ones, found through Stack Overflow)
OpenCV on Android
http://opencv.itseez.com/doc/tutorials/introduction/android_binary_package/android_binary_package.html
(This was very helpful in installing OpenCV to work with Eclipse and Android, though I found it lacking in any kind of documentation for the demo samples)
Haar Training
http://note.sonots.com/SciSoftware/haartraining.html
(I found this a bit vague and confusing)
OpenCV Tutorials
http://www.shervinemami.info/openCV.html
(This was one of the better tutorials)

I've had pretty much the same experience as you have. My strategy for getting good results with opencv has been a two-pronged approach:
Find a tutorial on whatever it is I'm trying to get done and scan for all references to opencv functions, and data structures.
Look up the documentation for all those items referenced in point 1: http://opencv.willowgarage.com/documentation/
Then re-read the tutorial, going to the corresponding documentation whenever there's something I don't understand.
I found that my understanding of the various tutorials went up drastically once I used the documentation and took it a step at a time. Not an exact answer, but hope it helps :-)

Related

How to get started with NNPack?

My work has asked me to try out the NNPack math library (see it on Github at https://github.com/Maratyszcza) and report on its suitability for our Android project. I've found no documentation either on Github or in the source code, and functions such as matrix multiplication involve so many unexplained parameters that it's difficult to impossible to perform even the simplest operation.
A Google search hints that NNPack is in use by many people. Is this in fact right, and if so, how did they learn how to use it?

React-Native cross-platform example write once and use anywhere or DRY?

I am very new to React-Native and love it so far. Really great technology and very impressive tooling. I would like to propose it for use in my company.
However ... react-native examples demoing code-sharing btw Android and IOS platform are simply nowhere to find??? All I have found after 3-4 weeks looking into it is few excellent but only IOS examples. Below, are just few examples of articles lacking this. Although some of them claim in their title to cover both, they cover only IOS:
https://www.raywenderlich.com/165140/react-native-tutorial-building-ios-android-apps-javascript
https://mentormate.com/blog/react-native-components/
http://www.andevcon.com/news/take-a-crack-at-react-native-with-kyle-banks
https://appendto.com/2016/11/build-a-coffee-finder-app-with-react-native-and-the-yelp-api/
https://reactjs.co/react-native-convention/
https://www.lullabot.com/articles/build-native-ios-and-android-apps-with-react-native
https://code.facebook.com/posts/1189117404435352/react-native-for-android-how-we-built-the-first-cross-platform-react-native-app/
https://medium.com/#MentorMate/best-practices-for-building-an-app-with-react-native-components-7dee3b2b010f
https://code.tutsplus.com/tutorials/creating-a-dictionary-app-using-react-native-for-android--cms-24969
http://facebook.github.io/react-native/docs/tutorial.html
... , this list could continue on and on but it should be enough to demonstrate the lack of good resources I'm talking about.
I understand react-native is cross platform in terms that you can write code for both Android and IOS, that is all clear and great.
But is it sharing the code? In other words, is it DRY? From what I see, it is write once for each platform rather than write once for all platforms. Again, I understand some Views (but not all) are platform specific but again, there is no example to show even that on both Android and IOS in the same project.
Where is a non-hello-world (real life) example to clearly demonstrates and teaches how to do that? React native used to have it in version 0.20 or so but it was removed and replaced with a HelloWorld example? Seriously #Facebook???
As per links above, lots of React-Native articles out-there are titled to cover both platforms but then they only talk about IOS without even mentioning any other platform? Very few talk about Android only, again, not even touching other platform in the same project. ... and lots of them are outdated!
I understand that the technology is very new (and very good from what I have seen so far, I really love it).
But assuming I have to propose React-Native as a next-gen platform to a company, I do not see any convincing cross-platform, code-sharing examples demoing this for both Android, IOS (UWP??) that I could help me learn, understand, build, and demo an example for that proposal.
I am not looking for chatty comments or links to courses but rather examples to show how to do this in more than just CRNA generated HelloWorld app.
Found the answer here https://www.codementor.io/vijayst/build-react-native-retrofitting-ios-app-to-android-gsf5uyl1q in the very 1st paragraph and it is exactly what I have been trying to get RN/Facebook answer but they ignored the question all the time.
Very disappointing!
So, ReactNative is not "build-once-use-everywhere" but rather "learn-once-use-everywhere" meaning lots of code duplication. And by everywhere, they mostly mean Android and IOS although the examples out-there are mainly IOS. If they cover both platforms, then it is with almost no code sharing but lots of code-duplication.
Although, RN claims they can achieve up to 90% of code sharing, that is not demonstrated anywhere that I could find. Documentation is very shallow in touching anything let alone topic of code-sharing and the tutorial provided by RN is a HelloWorld, ... yes, seriously. Sad! Although they used to have a better tutorial in older version (like 0.20 or so).
In terms of recommending RN to a company as a next-gen platform, I see few issues
concerning patent license, no answers no explanations, very obscure and concerning for a company that would consider moving to this, I'd rather say open-source under quotation marks. Hopefully this will change as I see it as a mayor showstopper for anyone considering adapting this technology. I would say this is no more applicable as FB made react-native licensed using MIT as per https://github.com/facebook/react-native/issues/16079
documentation that is very basic without giving depth of explanation. For example, this is react-native site with demo sample to demonstrate code-sharing cross-platform nature (I warn you, it is a HelloWorld example) https://facebook.github.io/react-native/docs/tutorial.html
React Native Community facebook page which is the page where you are supposed to find help and ask question as per react-native site will simply block you if you bring this topic on and will not let you in
even here on SO, questions like this (after extremely thorough and time consuming research) will earn you only downgrades and zero answers or even attempts
examples lack clarity and depth of explanation, it seem like whole community follow one pattern, copy / paste demonstrating code-duplication rather than code-sharing
Most examples cover (to most basic extent) only IOS although most claim cross-platform nature on both Android and IOS with Android being mentioned in the title only and the body covering only IOS
Impossible to ask for help on react-native site
Impossible to suggest improvement on react-native site other than create pull request. In other words, they want you to work for them for free
The framework is cross-platform, that is great but it is more of a copy/paste (copy from IOS into Android, then modify what needs modification) rather than code-sharing strategy. Every example I was able to find and it took me a month, was a violation of DRY principle in its best form
Although I mentioned things that bothered me at most during my research, I have to say that I hope this technology will thrive and become clear open source platform in future. I really like it and hope someone at #Facebook / #ReactNative will consider these suggestions, or at least provide improvements in the documentation, examples, access to community, place to ask questions and get help, clear licensing, ... all of which I was not able to get after spending a month researching RN.
Perhaps the technology is still not mature enough, which makes sense, it is very new.
Would I recommend it?
To developers yes, definitely. I really like it myself and will spend more time studying it.
To a company? Not really for the reason explained above.
UPDATES - Getting Better :):
... and to add my 2c to anyone who faced the same problem and contribute to community (at least in terms of finding tutorials that talk about both IOS and Android), I will keep posting links I have managed to find so far:
https://differential.com/insights/sharing-code-between-android-and-ios-in-react-native/ is very basic example. Not really code sharing but rather code duplication but at least something
https://www.codementor.io/vijayst/build-react-native-retrofitting-ios-app-to-android-gsf5uyl1q, also more of a code copying rather than code sharing but hey... going somewhere
https://hackernoon.com/getting-started-with-react-navigation-the-navigation-solution-for-react-native-ea3f4bd786a4 another good one
This document explains that RN philosophy is "learn once, write anywhere" rather than "write once, run anywhere" http://makeitopen.com/tutorials/building-the-f8-app/design/

ScrolledListView in Android

I found this Image on the web and want to use a such list in android. Do you have an idea where I can find a such List in Android Studio?
There are certain lists that others have provided as free source code to be used within your applications. What you have discovered is not a built-in feature of Android (the IDE has not relevance on this).
You can however find resources to use a wheel such as those. One of which used in the past has been from the android-wheel code. Most will demonstrate examples and provide useful tips on going forward with implementation. But you can find others if you look hard enough.

Aubio for BPM tracking on Android

I am working on a android audio project which requires BPM tracking. I decided that writing my own would not be a good idea and after looking around, I found a few libraries that does BPM tracking such as aubio, vamp, echonest etc. Out of the lot aubio seemed a good choice. The problem is I cannot find good documentation that can help understand how I can use the library, such as, what sort of input audio formats are compatible (should i pre-process the audio before passing it to the function), etc.
Can you point me to some documentations or implementations of aubio to some open source projects (on android would be a bonus).
If you think there is an easier way (another algorithm/library) to port on android (preferably in c), let me know.
Thanks.
I used the make files provided with aubio to cross compile it for android. I followed some tutorials such as this which shows how to cross compile open source libraries. As for the documentation for aubio, i just used it several times to understand how it works (i studied how the examples worked) and read the phd thesis of the author to get a rough idea on the technical stuff.

AndEngine: Is there any file or read-online site to describe AndEngine in detail?

Is there any file or read-online site to describe AndEngine in detail?
No, we all learn mostly by trial and error, Stack Overflow and generally googling around. You can find some answers on the official forum but I haven't had much luck when asking there. Also see this unofficial wiki and the official one. There are also many tutorials scattered on various blogs.
If you plan to use physics, there are many resources for the Box2D engine that are applicable for AndEngine's physics extension, except the programming is not done in C++ but in Java. See the Box2D manual.

Categories

Resources