As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am really new to Windows platform.
I was wondering if you guys can give me a tip on which language to start on and which platform is the best and easy to learn and use for the following
I will be working on Video dissecting, frame rate measurement. Everything to do with video frames and image processing measurement.
Performance is a very big concern. So I will not be able to work on Java or any other language. I would performance like C/C++.
Please give me reference as to where I can start off on it too.
Is OpenCV a good choice?
Thank you.
OpenCV is definitely a good place to start. The library is written in C++, have good API, and is highly optimized. OpenCV's cv::Mat data structure is fast and easy to work with and allows you to do linear algebra on matrices. The library has a large user community, so you should be able to find help on-line easily. You may use other libraries in conjunction with OpenCV or implement your own custom functions.
I would also suggest to use the power of GPU for image processing (when it is appropriate). OpenCV has a few functions that are implemented on GPU. This number will probably increase, because the library is being continuously updated (an updated version is released approximately every 3 to 4 months).
Yes OpenCV is very good choice to start. Its very easy to learn since it is widely used and lot of help is available online. You can get things done with minimum code.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I've been learning Go for a while and found that it has a lot of good features (simple and clean syntax, fast compilation/execution, good support for concurrency, first class functions, etc). But very few popular projects are developed in Go.
I'm just wondering what are the main disadvantages that restricts Go from becoming a mainstream language? Can someone come up with a kind of program/project for which Go is obviously not suitable to be used?
Go is only 3 years old. C is more than 40 years old. C++ more than 30. Perl 25. Ruby almost 20. Java is a relatively young language at 17, and C# quite young at 10 (or 12, depending on how you count it). And Java and C# had a lot of resources thrown at making them dominant, with Sun and Microsoft investing in all kinds of tools and libraries and getting people trained in them. Compared to that, 3 years is almost nothing. Google spends some money on developers for Go, but at nowhere near the scale of C# and Java. And 3 years isn't a lot of time for really prominent products to be written and released in Go.
Give it a few years. Write some code in Go. Maybe yours will become the next prominent project.
As far as what it's not suited for, it's not suited for anything that requires a really mature language and toolset. If you want fancy refactoring IDEs, tons of off the shelf libraries, and lots of tutorials and information online, you probably won't find that yet. The last I checked, its garbage collector was a little weak; it's possible to get leaks due to mistaking integers for pointers, since it's a conservative collector. This could be fixed by now, but its indicative of the relative immaturity of the Go implementation; there are certain things that may be solved problems in other languages (or have well-known workaround patterns), which are still a bit up in the air for Go.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
What areas of math are prerequisite for learning algorithms?
I guess it depends a lot about the kind of algorithm you want to use and how deeply you want to understand them.
The understand of the usual basic data structures needs almost no math background.
Most of the graphical algorithms requires knowledge of trigonometry and spatial geometry.
Algorithms about physics engine are easier to understand if you have some physics basis
If you want your program to help you to take decisions, you might need to study operational research which is a really huge sub-fields of math which includes graph theory, game theory, optimisation (which then includes analysis and linera albegra)
In any case, having a logic/mathematical mind obviously helps a lot for the understanding and to check/prove that your code can/cannot work.
If you're talking about simple programming you don't really need a lot of math. At this level, your problem solving and logic abilities are more important, but it's necessary that you get instructed in the basics of problem solving by using flow charts and process planing.
In the other side, math is known to improve your abilities and in some areas you would need to know math to achieve the expected results. For example, to create an animation engine knowing linear algebra is more than useful, so its physics.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Please help me to find some working application which is using openmpi. I need any name of application which have widely/worldwide usage and based on openmpi (using it). At least the name of that kind application will be enough.
Thanks
OpenMPI is an implementation of MPI. Applications are written using MPI (i.e. the code calls MPI routines), and they can be compiled/run using any MPI implementation (e.g. MPICH2, OpenMPI, LAM-MPI, etc).
So, to answer your question, strictly speaking there is no such thing as an "OpenMPI application".
As for what applications use MPI, there are many. Here's a few:
AMBER (Molecular Dynamics)
Gromacs (Molecular Dynamics)
DL-POLY (molecular dynamics)
FFTW (for parallel Fourier transform)
MATLAB Parallel Computing Toolbox
FLAME (Agent-based modelling)
CASTEP (Materiam science)
POLCOMS (Marine Ecosystem)
WRF (Weather Forecast)
NWCHEM (Computational Chemistry)
... and the list goes on and on.
Well, you could search for MPI benchmarks. There are several popular ones such as NAS, PALLAS, SPEC, etc.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I will be teaching only one lecture on basic Prolog to students with little to no experience in programming. I'd like them to see that programming and Prolog can be used in the real world, perhaps even to do cool things.
I have looked at this and this threads, but I cannot find anything that is visually appealing that I can show them when we wrap up the lecture.
Do you have any suggestions for cool applications that use Prolog? I'm especially looking for something that can be shown as a video or slideshow.
If what you want is to highlight the uses of prolog and use audio-visual media merely for presentation purposes, combining the following 2 links might do it:
Natural language processing with prolog in the IBM Watson system
IBM's Watson supercomputer destroys all humans in Jeopardy
Dynalearn is implemented in Prolog and has animations.
See:
http://personnel.univ-reunion.fr/fred/Enseignement/Prolog/index.html
under "La librairie clpfd", there are links to 3 finite domain constraint animations (N-Queens, Sudoku, Knight Tour) that are used in this class.
InFlow is written in Prolog. You may browse through the examples and / or contact the author for details. VisiRule might also help.
Disclaimer: I have not used either InFlow or VisiRule, but I do use WIN-Prolog which is the environment used for both programs.
+1 for Visirule. It is, as far as I can tell (and I've researched this topic quite a lot) a unique visual programming tool (I don't know of any other visual tool that is easily reduced to a turing-complete language). I have implemented a trouble-shooting website with it along with various other solutions. Highly recommended- version 5 coming out soon too.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am doing a lot of image processing in C and I need a good, reasonably lightweight, and above all FAST matrix manipulation library with a permissive license. I am mostly focussing on affine transformations and matrix inversions, so i do not need anything too sophisticated or bloated.
Primarily I would like something that is very fast (using SSE perhaps?), with a clean API and (hopefully) prepackaged by many of the unix package management systems.
Note this is for C not for C++.
Thanks
:)
I'd say BLAS or LAPACK.
Here you have some examples.
OpenCV
alt text http://opencv.willowgarage.com/wiki/Welcome?action=AttachFile&do=get&target=OpenCV_Overview.jpg
You could try CUBLAS(CUDA Basic Linear Algebra Subroutines library) with CUDA enabled graphics card to do matrix manipulation on nVidia GPUs. It has quite significant performance boost than other CPU libraries, though it is not that lightweight to your requirement.
This page contains some description and figures about it.
I found this library and it's brilliant: Meschach
Armadillo have simple interface and can use different LAPACK and BLAS linear algebra libraries