Introduction About Site Map

XML
RSS 2 Feed RSS 2 Feed
Navigation

Main Page | Blog Index

Archive for December, 2010

Heart Image Contouring

Today I implemented circular arrangement of landmark points for the algorithm to identify something approximate/similar to the shape of the heart and then place a given number of points around there. In addition, a boundary is shown by sampling between those points, which gives a contour, with or without arrows on top of it. I will upload the code shortly (needs tidying up).

Heart Tracking – Arrows Drawn Pixel by Pixel

Cardiac image with movement - arrows in blue

Cardiac image with movement - arrows in red

Rather than use the line function in Octave I’ve created a function that can draw several types of arrow, either with colour gradients or uniform, thick or thin (these are parameterised). I’ll soon publish the code.

The shown above arrows are very tiny, but there is a small arrowhead that tells which direction the points move in. Additionally, I have been implementing some 3-D means of visualising what is being done, but it is too early to show the results of this, possibly with arrows in hyperspace too.

These new exemplary images show a surface yielded with ‘hot’ colours where I move landmark points in between frames. It’s still work in progress.

Creating Animations With GNU Octave and the GNU Image Manipulation Program

The GIMP is an extremely powerful program and animation in the GIMP can be achieved with layers. That’s why I can get so much work done just with Free software and GNU tools like gnuplot. This includes some of the following new examples, which are done by taking screenshots (from the GIMP), stacking them up as layers, and then saving them as a GIF file with the animation option enabled.

The following file, an animated GIF image which comprises 8 frames with 600ms setting them apart (click the image to zoom), shows my new algorithm tracking the heart’s boundaries in a sequence taken from the same slice, which prevents sudden, unregistered change in the intensity values near the point being probed. 16 points are initially fixed in a region, equally spaced although that is not a strict requirement because the program takes any list of points and handles each one in turn. The points are separated by a 5-pixel distance in the x and y axes although that too can vary independently based on parameter input that sets a grid (better initialisation would look for edges of interest). The shown arrows are narrow and crude although an option exists for making them thick (which then hides interesting parts of the image). The shuffle parameters in this case involve a frame size of 9×9 pixels, a shuffle radius of 5 pixels, and a summation of pixel-wise differences.

Fiesta animation (cardiac)

A colour representation of the same images sequence is shown below (click to zoom).

Animation of heart surface

Another newly-implemented method looks at another measure for a window of pixels taken from consecutive frames. It considers a minimum of pixel-wise differences in a given range rather than take the average difference. The results obtained using each of these methods cannot be easily compared without a simplified synthetic set and a proper study would need to involve systematic experiments that look at how varying window size, radius, and calculation method affects overall performance. There is quite a project right there, but it only involves tracking, with or without tagging. Tags can help in identifying good landmark points to start with — points that define an anatomically-meaningful edge to start from and track as the sequence of frames progresses. Eventually, providing a formula for normalising a measure of similarity would be nice. Such a normalisation method — if properly applied — gives a new way of finding landmark points ‘on the move’. Doing so using non-rigid registration (NRR) is not possible for the heart as there is hardly a one-to-one correspondence between points (too much movement). The hope is that by employing a fast tracking algorithm with a good transform which adjusts itself for image intensity, size et cetera, it will be possible to identify edges and perform localised measurements, perhaps even do statistical analysis based on different sets of videos (long-term goal). These ideas are not far fetched and the body of work already done in this area ought to be explored. The novelty is the transform being used to quickly calculate similarity wrt neighbouring points, so existing work look at how to adjust parameters so as to get better results. In this particular problem domain, tracking the heart’s contours reliably and robustly enough is the objective, however it is not simple to do this ‘on he fly’ (speed of video playback for example).

Why Leaks Are Scary

Wikileaks avatar

LEAKS are often just material which was supposed to be in the public domain all along. Copyright is not the issue. Since it was kept secret (often for no truly justifiable reason), input which was contained in it assumed no moderation would be needed. As such, secrecy resulted in mischief, rudeness, and often the perpetuation of misconduct, which relied on lack of wider awareness.

As I explained repeatedly over the years, I too was bullied for leaking documents which ought to have been out there all along. This is the main reason I am willing to dedicate so much time to defence of Wikileaks. I too may soon leak some more documents and I don’t want to get the “Assange treatment”. Nobody does. “EVERY attack now made on WikiLeaks and Julian Assange was made against me,” writes Daniel Ellsberg this week. For those who do not know, Ellsberg was partly responsible for ending the bloody Vietnam war.

Leaks hurt. Truth hurts, too. But always bother to check who it hurts the most. Therein lies the answer regarding the ethics of a leak.

The word “leak” — like “whistle-blower” — has a negative connotation. Let’s call leaks “enlightenment” and whistle-blowers “truth revealers”.

3-D Fun with GNU Octave

I HAD worries that GNU Octave would not support some of the advanced graphing functionality of MATLAB, but with the help of tools like gnuplot, Octave stays on par in this game (bar some OpenGL enhancements). Much to my surprise, the 3-D charting and graphing software in GNU Octave. Here are some visualisations of cardiac images I work with.

Heart surface

Heart landmarks - mesh overlay

Surface - large

Wikileaks Opens Governments and Microsoft Falsely Says It’s Open

TechBytes

Direct download as Ogg (1:46:36, 40.1 MB) | Direct download as MP3 (48.4 MB)

Summary: Another ordinary episode with a lot of interesting topics and news

TODAY’S show is a mixed bag of GNU/Linux, antiquated law, computer games, and Microsoft pretending to be “open”. OpenBytes will publish the show notes very soon. We suffered from unusual connection difficulties which sometimes made the audio a little poor in terms of quality, but overall it should be easy to understand throughout.

RSS 64x64Today’s show ends with “Rock n’ Roll Hall of Fame”. We hope you will join us for future shows and consider subscribing to the show via the RSS feed. You can also visit our archives for past shows. If you have an Identi.ca account, consider subscribing to TechBytes in order to keep up to date.

As embedded (HTML5):

Download:

Ogg Theora
(There is also an MP3 version)

Supporting Wikileaks

Roy Schestowitz as baby

Manning

TODAY I decided to step up with my support of Wikileaks, which I perceive as a test case for free speech and Internet freedom regardless or irrespective of the impact of what they are doing. Therefore I changed my usual avatar in Twitter and Identi.ca to a modified version of a banner calling for the release of Manning, the leaker who is the real hero in this case (Assange is the messenger/publisher).

Retrieval statistics: 18 queries taking a total of 0.127 seconds • Please report low bandwidth using the feedback form
Original styles created by Ian Main (all acknowledgements) • PHP scripts and styles later modified by Roy Schestowitz • Help yourself to a GPL'd copy
|— Proudly powered by W o r d P r e s s — based on a heavily-hacked version 1.2.1 (Mingus) installation —|