that's an excellent question, and not a troll :-). Opencv is a
very powerful library, but it focuses primarily on computer vision
(feature detection and extraction, classification, ...), as opposed to
image processing in general (with other tasks such as denoising,
The other big difference is that skimage builds on numpy
ndarrays, and uses the full power of the numpy API (including of course
the basic facilities for processing arrays as images that come with
numpy), as well as some of scipy functions (you could have added
scipy.ndimage to your list -- a few functions in skimage are wrappers
around scipy.ndimage, that exist for the sake of completeneness). One
important consequence is that algorithms working for 3-d or even n-d
images can be easily implemented in 3-d/n-d in skimage, whereas opencv is
restricted to 2-D images (as far as I know). Thanks to the use of numpy
arrays, the API of skimage is also quite pleasant for a numpy user, more
than the API of opencv.
A related difference is that skimage is written in python and
cython, whereas opencv is a C++ library. The two libraries attract a
different crowd of developers, and a Python/Cython toolkit based on numpy
arrays is easier to develop and maintain inside the Scientific Python
I'm sure that other devs/users will have things to add to this
On Thu, Dec 27, 2012 at 02:06:08PM -0800, FranÃ¯Â¿Â½ois wrote:
> Hi users and devs,
> It came to my knowledge that another python library (based on C++ and C
> codes) for image processing exists too : opencv
> I understand that numpy intregrates some basic features and we need some
> advanced features but I have the feeling that skimages is redoundant with
> opencv in some ways.
> What's the position of skimage about that? (Don't read this question as a
> troll but like a real question).
> I mean that similar features exist in both. Would not be possible to
> reuse/integrate opencv or merge? what's the reason for keeping them apart?
> My observation is there is 4 libraries to manipulate images:
> * PIL
> * numpy
> * skimages
> * opencv
> That's a lot.
A while ago I wrote a post on my blog with code on how to import in Python
a colour palette in an ASCII file and convert it to a Matplotlib colormap:
Following that post I wrote a tutorial on a geoscience magazine on how to
evaluate and compare colormaps using Python:
In the accompanying notebook I show how to convert a 256x3 RGB colormap to
a 256x256x3 RGB image, then convert it to CIELAB using scikit-image's
rgb2lab, then plot the 256x1 lightness (L) array to evaluate the colormaps
You can read the relevant extract of the notebook using this nbviewer link:
In that case scikit-image worked really well for me.
Now I am trying to follow up with a new tutorial and I run into problems
with the color space conversions.
You can follow what I am trying to do in this other notebook extract:
The goal of this new tutorial is to show how to build colormaps from
scratch using perceptual principles. I design a color palette in LCH (polar
version of CIELAB) by keeping Chroma and Lightness fixed and interpolating
Hue around the circle, then convert to LAB, then to RGB.
As far as I know the code I wrote should work, but the result is a black
colormap. I am thinking I got wrong one or more of the ranges for the LCH
coordinates. I assumed L between (0,1), Ch between (0,1), and H between (0,
Is that wrong, and if that's the case, what are the ranges? Many of them
are not stated clearly in the documentation in here:
Is it possible to update the documentation to clearly state all ranges for
all colour spaces.
Thanks for your help.
I'm pleased to announce version 1.0 of imageio - a library for reading
and writing images. This library started as a spin-off of the freeimage
plugin in skimage, and is now a fully-fledged library with unit tests
Imageio provides an easy interface to read and write a wide range of
image data, including animated images, volumetric data, and scientific
formats. It is cross-platform, runs on Python 2.x and 3.x, and is easy
Imageio is plugin-based, making it easy to extend. It could probably use
more scientific formats. I welcome anyone who's interested to contribute!
install: pip install imageio
release notes: http://imageio.readthedocs.org/en/latest/releasenotes.html
I found very few examples for transform.PolynomialTransform on the internet
so I hope someone in this group can help me understand what I am doing
If it's not the right place to ask for help, please forgive me!
Here is my problem. I have a greyscale image with some curved lines.
I want to transform it so the lines become straight.
So I measure the position of the lines at regular intervals (in the
attached file source_test2.csv)
And compute the desired positions after transformation (in the attached
So i have a nice set of input points and their correspondences as in the
figure below (red = input points, and blue = desired positions after
Next I compute the transformation
using skimage.transform.PolynomialTransform and a polynomial of order 2,
and apply the transformation to get the warped image
But the warped image is completely crazy! See below:
It seems the transformation found by PolynomialTransform is completely
*Note that I managed to get a good transformation in some cases for
sub-images (e.g using the first 400 columns only).*
What am I doing wrong?
Are PolynomialTransform too unstable? Do I need a regular grid?
I attach the code I use (warp.py)
Thanks for your help!
Hi everyone, this is my first post here, so I am really a newbie...
I haev seen on the doc that it is possible to specify the center of
with rotate(image2,90 , resize=False, order=1, mode='constant', cval=0.0,
but my computer doesn't seem very happy with this parameter center :
rotate() got an unexpected keyword argument 'center'
how can I specify the center of rotation ?
thanks a lot,
I note this and hopefully I will be able to submit a PR over the next days.
> On Nov 20, 2014, at 5:21 AM, Stéfan van der Walt <stefan(a)sun.ac.za> wrote:
> Nice suggestion, Tony.
> You received this message because you are subscribed to the Google Groups "scikit-image" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to scikit-image+unsubscribe(a)googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
On Nov 27, 2014 2:41 AM, "Matthew Brett" <matthew.brett(a)gmail.com> wrote:
> I'd like to upload new wheeels to pypi (which are just rebuilt copies
> of the old one) with the longer filenames, as in:
> etc. I propose to leave the old ones there in case anyone is
> depending on them. Is that OK with y'all?
Thanks very much! Please go ahead.
OSX is now at 10.10, and the current wheels won't get installed by
system python, homebrew or macports on 10.10, because they lack the
relevant bits to their filenames. Specifically the wheel files need
to have the text "macosx_10_10_intel.macosx_10_10_x86_64" in their
I'd like to upload new wheeels to pypi (which are just rebuilt copies
of the old one) with the longer filenames, as in:
etc. I propose to leave the old ones there in case anyone is
depending on them. Is that OK with y'all?