RSSAmplifier

Blog

Cris’ Image Analysis Blog

theory, methods, algorithms, applications

crisluengo.netRSS feed ↗10 posts

Latest posts

Robust estimation of shift, scale and rotation

A frequent problem in image processing is aligning two or more images together. Maybe you have a series of images that partially overlap and need to stitch them into a single, larger image. Maybe you have a video sequence and need to estimate and remove the movement. Maybe you have …

DIPlib 3.5.2 released

Today we released DIPlib version 3.5.2. This release has quite a lot of changes, see the change log . In my last blog post I discussed the graph cut algorithm. This is the largest addition (effort wise) in this release, together with the changes to the dip::Graph class …

Graph cut segmentation

For a while I’ve been interested in adding the popular graph cut segmentation algorithm to DIPlib. But I was not able to find an implementation I could adopt (the most commonly used implementation has an incompatible open-source license). So I finally sat down and re-implemented the algorithm myself from …

ITK's architecture

This morning I was reading a chapter about the architecture of ITK in a book called The Architecture of Open Source Applications (Volume 2) . ITK is the Insight Toolkit, a large library for image analysis in C++, specifically aimed at medical applications. Most of its functions work on images of …

DIPlib 3.5.0 released

This week we released DIPlib version 3.5.0. In my previous blog post I talked about new syntax for selecting labeled objects . There are quite a few more quality-of-life improvements like that in this release; changes that, rather than adding algorithms, make existing ones easier to use: dip::​Measurement …

Improving the selection of labeled objects

Say, you have a labeled image, like this: And say, some of those labeled regions are not objects of interest. You want to erase those labels from the image. This is a really simple concept, and very generic. It should be easy to do. import diplib as dip lab = dip …

Implementing the convolution

I find myself regularly explaining how to efficiently implement a convolution (a linear filter). This blog post will combine all my tips and tricks regarding convolution. I’ll start with the 1D case, then will expand into the multi-dimensional case. In the 1D case, I’ll use \(t\) as the …

Color maps for image display

Today’s post discusses different possible color maps you can use to display a scalar image (i.e. an image with a single channel, often referred to as a grayscale image). A color map is necessary to translate the pixel values of the image into colors to show on the …

OpenCV is not designed for quantification

OpenCV is undoubtedly the most popular library for image processing and computer vision. According to its website, OpenCV is a highly optimized library with focus on real-time applications. That is, it is built to do real-time computer vision, not precise measurement. This means that OpenCV prioritizes speed over precision. There …

DIPlib 3.4.0 released

Yesterday we released DIPlib version 3.4.0. The change log is quite extensive. The improved median filter I discussed in my previous blog post is in this release, as well as a much faster built-in FFT implementation (used when not linking against FFTW), a bunch of new functionality including …