I am learning to use opencv. I am trying to install it from opencv official website. Is it okay to install the latest version(4.0.0)? I suppose that latest version should be compatible with the earlier versions so there shouldn't be any problem.
Is it okay to install the latest version(4.0.0)
Generally: Yes, why not? If you want to use the newest modules (like gapi, added in 4.0.0) you will need to use the newest version. It also makes a lot of sense to use the newest because they improved the performance for some operations compared to version 3.x.x.
I suppose that latest version should be compatible with the earlier versions so there shouldn't be any problem
Not necessarily. Version 4 to 3 might be compatible (I'm still using 3.x.x), but 3 to 2 are in fact not completely compatible. Most noticeable they moved a lot of functionality from the highgui package. From the official change log:
Although OpenCV 3 can be viewed as refined OpenCV 2 and is similar to the latter, this new version is not completely backward-compatible with OpenCV 2
I'd recommend you to read the official changelog for yourself and decide if you need the new functionality or if you want to stay with an older version. If you are new to OpenCV it probably makes sense to start with the newest version.
Related
Let’s imagine I have an iOS app. In version 2.0, I added a bunch of new features, but to implement them, I had to drop support for an older iOS version which is still in heavy use (remember, it’s a hypothetical scenario).
Later, I discovered a super critical bug in version 1.0 of my app that needs to be patched.
What are my options in terms of distribution?
It seems that it’s not possible to release version 1.0.1 if version 2.0 is already on the App Store. Adding back support for the older iOS version and fixing the bug in 2.0.1 is not feasible because that would require removal of the new features.
The problem here is that I can’t think of a way you could submit a version that updates version 1 without letting your version 2 users download it. So if you want to update version 1 you will just have to bite the bullet and meld your versions together. Use availability so that the new features are not present for your version 1 users.
Can someone please throw some light on the difference between VVVV.EmguCV and EmguCV.221.x64. I am new to image processing itself.
Do they serve different purposes. As I understand they both are EmguCv wrappers to OpenCv. Is there any thing else to note?
VVVV.EmguCV and EmguCV.221.x64 are just two different packages by separate publishers.
VVVV.EmguCV installs the newer 2.4.X verison of EmguCV where as EmguCV.221.x64 uses the 2.2.X series of Emgu.
Apart from the usual changes EmguCV 2.4.X added support for Android and iOS devices.You can check the difference between the versions here.
The latest release of OpenCV shows 2.4.11 Feb,2015 which is more recent then 3.0.0 which is in Beta. What is the difference between them. Should I use OpenCV 2.4.11 over 3.0.0 as I have encountered few bugs in 3.0.0. How do their releases work?
Though there are new features( like text detection, KAZE detector ) in OpenCV 3.0, for most developers, this comparison is not about features. It is about speed. Unless you are immediately into production, I suggest you use OpenCV 3.0. Also, this is far from adventurous.
The key difference is transparent API in OpenCV 3.0. Almost all OpenCV 3.0 methods are OpenCL accelerated. So, all methods could run on GPU and this could lead to improvement from 10 to 230%. Only change in required in your code is to use UMat where you used to use Mat. Samples(1). If you needed this performance in OpenCV 2.4.*, you had to explicitly invoke cv::ocl::* or cv::gpu::* methods.
If you happen to be a Java developer, it is even better. Java wrappers for classes/methods which were unavailable earlier, are now provided in OpenCV 3.0 ( see widely used KalmanFilter )
There are changes like internal module restructure, which from a
developer point of view, is minor as that could be resolved by
changing OpenCV headers in your code.
About the release cycle, a quick look into OpenCV github repo(2) shows, pull request are mostly going into master branch which is for OpenCV 3.0. So I assume, major bug fixes could be backported to 2.4.* branch.
For more, on differences read (3) and (4). About the bugs you encountered in 3.0 beta, it could helpful, if you could raise them with a minimal complete running sample at OpenCV issues page(5).
3.0.0 should bring a lot of new features but it's currently beta and not the official release (can be unstable). Last official stable release was 2.4.11.
Use the 3.0.0 if there is features you don't retrieve in 2.4.11 or if you are adventurous (3.0.0beta is great and the final release should come soon). If you want security with no additional needs, use 2.4.11.
In addition to the answers provided above, another important difference is that SIFT/SURF feature detection has been taken off the default openCV 3.0 package.
Since they are patented, openCV has moved 'non-free' algorithms to a different package:
opencv_contrib
What is the latest stable version of rails? I want to install rails 3.1 but I see there is 3.1.3 now, what is the difference? What ruby version is it most compatible with?
I recommend to always check on GitHub via the "branches" menu what the latest version is on each branch.
You can see the latest version easily by checking the contents of the RAILS_VERSION file
https://github.com/rails/rails
You could also check RubyOnRails.org, but looking at the source code is the most reliable way.
If you already have a Rails App in production, I would highly recommend: don't just blindly take the latest version just because it just came out -- there were many cases in the past where a new version introduced incompatibilities or new bugs which were serious enough to have to wait for a fix before the features in the Rails release were really usable. I know a couple of people who have Production sites and still run 3.0.11 or lower, rather than 3.l.x
Again: check on GitHub under "Issues" which open Issues there are for a release, and/or google "Rails 3.y.z Problems" with the exact version number, so you get a feel of what problems could be introduced by upgrading to a new / the latest version.
On Wikipedia they have a list of historic release dates for the major Rails versions:
https://en.wikipedia.org/wiki/Ruby_on_Rails
The Rails version numbers have been explained reasonably well (Joseph Le Brech's answer), but the Ruby version numbers are slightly confusing and I could see why it's not really obvious what's going on there.
Joseph's explanation of Rails version number scheme is correct for Rails, but Ruby has a slightly different approach
1.9.3 is the most recent version of Ruby. Having said that, it was only released maybe a month ago, so it's possible there are breaking issues with certain gems. (Yes, there were breakages. Ruby in general will introduce breaking things between hotfix releases, and it's true here too)
1.9.2 is a more tried and true version of Ruby, having been out for at least 6 months now.
1.8.7 is the last version in the Ruby 1.8 line. Major language rework happened between 1.8 and 1.9, so some older gems may not have made the transition.
My recommendation: use Ruby 1.9.2 and Rails 3.1.3, unless you have really good excuses not to.
Ruby 1.9.2 is probably the safest bet for a Rails newbie, or green-field projects (projects without a lot of preexisting code). Rails 3.1 is an excellent version of Rails, which solves a lot of problems I had with the framework.
Rails 3.1 was released this fall, so old tutorials won't work, or will give odd errors. Try to look and read what version of Rails the book/tutorial/website/blog entry is talking about, before you dive in.
Latest stable release is always shown on the Ruby on Rails website's home page here http://rubyonrails.org/
To list all rails versions by gem:
gem list -ra rails | grep -G "^rails\ "
It's also helpful for cheeking what is the latest version for 4.x, 3.x and 2.x too.
According to rubygems, it's 3.1.3. Looks like you forgot a ..
major.minor.hotfix hotfixes will never change the behavior of an app unless you previously had a workaround for a bug implemented. Apps can easily be upgraded thru minor revisions, but it's usually not worth it and can be a distraction from getting features out of the way.
The latest release is 3.1.3. This is a minor release which has security and minor improvements.
The main version is 3.1, while minor upgrades are included in 3.1.x releases.
Anyway you should always use the latest one.
usually if you'll pull the latest rails gem, it's the stable one (unless once in history). although you can still use ruby 1.8.x version with the latest rails 3.x, it is more recommended to use 1.9.x.
anyway, everything you might need is in http://guides.rubyonrails.org and some nice people (including myself) are answering all bunch of questions in IRC on irc.freenode.net (#rubyonrails and #railsbridge)
good luck
The latest release is 6.0. it was released on August 16, 2019, making Webpack default, adding mailbox routing. Rails 5.2 is still maintained.
I'm a newbie to jQueryMobile. When I'm going through the documentation and sample, I'm seeing different versions are included in various samples like (jquery.mobile-1.0a1, jquery.mobile-1.0a2, jquery.mobile-1.0b2,....).
Now I'm in confusion that what version I have to use for my applications.
I would use the latest stable build: http://jquerymobile.com/download.