Image processing in languages other than c and matlab - c++

It seems like most image processing apps are done using matlab or OpenCV using C++.
Are there any other languages providing good image processing libraries?? How do they compare to matlab and opencv?
When I say languages I mean something like Java , python or even perl!

Image libraries exist for many languages
Lisp:
ch-image
http://cyrusharmon.org/static/projects/ch-image/doc/ch-image.xhtml
Java:
ImageJ
http://rsbweb.nih.gov/ij/
OpenCV Java
http://ubaa.net/shared/processing/opencv/
Python:
Python Imaging Library
http://www.pythonware.com/products/pil/
ImageMagick offers binding for a large variety of languages: Ada C, Ch, COM+, C++, Java, Lisp, Pascal, Php, Perl, Ruby ...
But the main point is that image processing requires very good performance. A typical image contains millions of points to process. The efficiency issue is even more critical for 3d images, which are very common in medical imaging.
In practice, the main image processing libraries are written in C++ or have binding to C++.
You can take a look at this one Milena (offering python bindings). And here is a non exhaustive list of image processing libraries in C++ (each offering various binding for different languages or web services)
http://www.lrde.epita.fr/cgi-bin/twiki/view/Olena/SimilarProjects

For python:
PIL - Image Library
PyOpenCV
VTK

You can use Boost GIL(generic image library) for C++.
http://www.boost.org/doc/libs/1_44_0/libs/gil/doc/index.html

The Python Imaging Library is a very useful low-level library. You won't get C++-like performance with an interpreted language, but if that's not important, you should look at it.

Just about any language does. Google can help you here. Type in (language) image processing to see what libraries are available for whichever languages you're looking at. ImageMagick is one of the older and more well-known libraries that is usable from several different languages.

Related

Existing API for NLP in C++?

Is/are there existing C++ NLP API(s) out there? The closest thing I have found is CLucene, a port of Lucene. However, it seems a bit obsolete and the documentation is far from complete.
Ideally, this/these API(s) would permit tokenization, stemming and PoS tagging.
Freeling is written in C++ too, although most people just use their binaries to run the tools: http://devel.cpl.upc.edu/freeling/downloads?order=time&desc=1
Try something like DyNet, it's a generic neural net framework but most of its processes are focusing on NLP because the maintainers are creators of the NLP community.
Or perhaps Marian-NMT, it was designed for sequence-to-sequence model machine translation but potentially many NLP tasks can be structured as a sequence-to-sequence task.
Outdated
Maybe you can try Ellogon http://www.ellogon.org/ , they have GUI support and also C/C++ API for NLP too.
if you remove the restriction on c++ , you get the perfect NLTK (python)
the remaining effort is then interfacing between python and c++.
Apache Lucy would get you part of the way there. It is under active development.
Maybe you can use Weka-C++. It's the very popular Weka library for machine learning and data mining (including NLP) ported from Java to C++.
Weka supports tokenization and stemming, you'll probably need to train a classifier for PoS tagging.
I only used Weka with Java though, so I'm afraid can't give you more details on this version.
There is TurboParser by André Martins at CMU, also has a Python wrapper. There is is an online demo for it.
This project provides free (even for commercial use) state-of-the-art information extraction tools. The current release includes tools for performing named entity extraction and binary relation detection as well as tools for training custom extractors and relation detectors.
MITIE is built on top of dlib, a high-performance machine-learning library, MITIE makes use of several state-of-the-art techniques including the use of distributional word embeddings and Structural Support Vector Machines[3]. MITIE offers several pre-trained models providing varying levels of support for both English and Spanish, trained using a variety of linguistic resources (e.g., CoNLL 2003, ACE, Wikipedia, Freebase, and Gigaword). The core MITIE software is written in C++, but bindings for several other software languages including Python, R, Java, C, and MATLAB allow a user to quickly integrate MITIE into his/her own applications.
https://github.com/mit-nlp/MITIE

Python3 or C/C++: TWAIN interface

I have seen twain module for Python2, is there anything similar for Python3?
I need to control scanning process and, specifically, histogram settings (shadow, highlight, gamma), resolution and scanning window size. What would be the best way to automate it in Python3?
EDIT: If not in Python, are there any C/C++ libraries which could be integrated into Python and control scanning process? I know only one library, EZTwain, it supports multiple programming languages (excluding Python) but it didn't work for some histogram settings and there was no support even for commercial version, so I would avoid using it.
We use a third-party toolkit named leadtools that might help you. This toolkit supports the most common programming languages including C/C++, C#, VB.NET and so more. For more information, you can check these 2 help topics:
For .NET:
Acquiring an Image using .NET
For C++:
Acquiring an Image using C++

OpenCv and Ruby on Rails

Can I use OpenCV with Ruby on Rails? If so, how can I do that? Or, what resources do you recommend for that?
Thanks.
There is also an open CV gem, fwiw -- https://github.com/ruby-opencv/ruby-opencv.
Sure you can!
It just depends on what do you need as there is no "one" silver bullet.
If you want to create an online home surveillance, for example, then you would probably have least effort by writing:
C++ image-processing command-line application on top of OpenCV that would write the surveillance events and/or images to SQLite database.
Read the database directly from Rails.
For anything more complex, you'd need a more complex architecture.
Whatever you do, pick the best tools for the purpose:
Let OpenCV do what it is best at (image processing)
Let Rails to it's magic (simple, less demanding online access to some resources)
In order to link OpenCV and Ruby together, you could create a dedicated Ruby-to-C++ bridge because none of the existing ones can match diverse needs and most frameworks will do for a few specialized (i.e. designed by you) function-calls through your bridge.
This link would be a good start to pick a framework for a bridge - just go for one and see what comes out.
You could write a program using OpenCV in C++, and then just process your data with it, by using CGI (Common Gateway Interface http://en.wikipedia.org/wiki/Common_Gateway_Interface). I don't think you can bind native code to Ruby like you can do in Java (JNI)

Python modules for visualization of C++ code

I'm looking for python modules that can help with grepping C++ code. I have a large code base that I would like to do some analysis on. Ultimately I would like to come up with a graphical map of the software. There is lots of message passing going on amongst apps so I would like to be able to capture that information and present it visually. I have been looking around at some of the data visualization packages but have only stumbled on math and plotting related ones.
What are the best tools for this job, preferably in python?
Your best tool for the job is Graphviz. If you look at their gallery you'll find the sort of thing that you're interested in along with links to projects.
Under the language bindings section here there are a few python entries. Personally I don't use them as the dot language format is simple enough that you can build up fairly complex graphs from Python just using print statements.
You ca look at doxygen and see if it does (at least some part of) what you want. It generates call graph and class diagrams directly in html or xml format (I believe you need to have dot installed for fancy graphs).

Recommendations for OpenGL / Scheme combination

I'd like to try out OpenGL programming in Scheme.
Can anyone give a recommendation for a decent Scheme compiler / OpenGL library combination?
I have no reservations, though it would be nice (but not a requirement) to be able to produce native, executable binaries — primarily on Windows, but also on UNIX and/or Mac OS X.
EDIT: Changed to community wiki, since the question does not have a definite answer I can accept. Thanks for the replies!
PLT Scheme includes OpenGL bindings in 2 forms, one that matches the C API, and one that's more "scheme" like in usage.
Update: PLT Scheme is now known as Racket, which also has OpenGL bindings.
Chicken Scheme has an egg that provides OpenGL bindings. IMHO, it's not well documented; if you are not familiar with OpenGL already, then this library isn't the right place to start learning.
Spark Scheme:
Spark-Scheme is a dialect of Lisp, which gives you...
Interactive, modular software development
Meta-programming facilities
Advanced control flow
Distributed computing
A comprehensive networking API
A modern GUI framework
2D/3D graphics
An SQL database engine and connectivity to third-party databases
A web server and a couple of web application frameworks
Gambit-C Has some "3rd party" Open GL bindings, available in the dumping grounds.