Posts Tagged ‘DIPimage’

Thursday, January 12th, 2012

I’m pleased to announce that a new version of DIPimage has been released. There’s some performance improvements, some bug fixes, and some new functions. The `measure`

function has some new features also, that use the convex hull of the objects. The Feret measure is computed differently now, also using the convex hull. This makes this computation more accurate and also somewhat faster.

But most importantly, we have rewritten a lot of the code that does binary arithmetic and logic operators. Binary here means these operators take two inputs. `+`

, `-`

, `*`

, `&`

, `>`

and `==`

are examples of binary operators. All of these used to be computed using MATLAB code, which required some nifty tricks. For example, computations between images of different type (i.e. an 8-bit integer image added to an 16-bit integer image) used to require data conversion because MATLAB cannot perform such a computation. All of these binary operators are now computed by DIPlib instead. This makes some cases much more efficient. We parallelized the arithmetic and logic code in DIPlib for further speed improvements.

(more…)

Tags: bsxfun, DIPimage, singleton dimension, singleton expansion.

Posted in announcements | 2 Comments »

Friday, March 19th, 2010

A new version of DIPimage and DIPlib has been released. You can get it at the the DIPlib website. This version fixes some bugs, adds compatibility for newer versions of MATLAB, and adds a few new functions. One interesting addition is that the function `readim`

now will look for and use the Bio-Formats library if you install it. This means that a whole host of new image file formats are now readable. The Bio-Formats library is an open-source package created at the Laboratory for Optical and Computational Instrumentation (LOCI), University of Wisconsin-Madison. Unfortunately, their license doesn’t allow us to bundle the library with DIPimage. It is perfectly legal, however, for you to download and use the library.

Tags: DIPimage, DIPlib.

Posted in announcements | No Comments »

Monday, December 21st, 2009

In the previous post I showed how to implement active contours (a snake). I included the link to a set of files with a complete snake implementation to plug into DIPimage. This implementations uses a class called `dip_snake`

. In this post I wanted to show how this class is defined using MATLAB’s new 1-file-style of class definitions. Well, “new” is not completely accurate, this feature has been around for a few releases already, but I’m slow to adapt… You’ll also learn how to make a class whose objects automatically create or update a figure window, much like an object of type `dip_image`

does.

(more…)

Tags: class, DIPimage, display method, end operator, indexing, length method, object, snake, snakes_with_style.

Posted in tutorials | No Comments »

Wednesday, December 9th, 2009

In this post I want to show how easy it is to implement snakes using MATLAB and DIPimage. The next release of DIPimage will have some functionality implementing snakes, and this post is based on code written for that. The first implementation of snakes I made for DIPimage used a custom class, `dip_snake`

, to simplify usage. We decided eventually to do without the class. The code discussed here uses that first implementation, which you can download here. The most important bits of the code are identical to that in the next release of DIPimage, but the wrapping is not. Adding the class is a nice excuse to show how to modify DIPimage to understand a new parameter type. I will discuss that in a future post.

(more…)

Tags: active contour, DIPimage, gradient, segmentation, snake, snakes_with_style.

Posted in algorithms | 78 Comments »

Tuesday, August 25th, 2009

**Edit December 2018:** Over the past two years I’ve been working on DIPimage 3, an updated version of DIPimage that is based on a rewritten DIPlib. Just about all of the issues discussed in this blog post have been resolved there, with the exception of the `end`

operator, which will now do the wrong thing if used in curly braces (tensor indexing), and the limitation to the order of spatial and tensor indexing. We incurred a few backwards compatibility breaks, but it was necessary for the long-term health of the toolbox.

There are a few things in DIPimage that I’m annoyed with but can’t solve. Some of these are caused by the limitations of the MATLAB interpreter, and some are caused by my own poor design choices. DIPimage evolved over time to do things that I hadn’t at first even thought about, such as processing color images. Tensor and color images were “tagged on”, if you will, on top of the `dip_image`

object, introducing some oddities and inconsistencies. To fix these up we would need to change existing behavior, which we don’t want to do because it would break too much existing code. This blog entry is about the few weird things with the `dip_image`

object and how to work around them.

(more…)

Tags: color, concatenating, design choices, dip_image object, dip_image_array object, DIPimage, end operator, evolution, imarsize, imsize, indexing, iterate, size method, tensor image.

Posted in tutorials | No Comments »