Friday, December 21, 2012

Learning Tomography: Direct Fourier Reconstruction



After the back-projection [Link] and iterative [Link] methods, the Direct Fourier Reconstruction technique allows to compute a reconstruction directly in frequency space.
>Here is an introduction of the principle of this algorithm.

Monday, December 3, 2012

Drawing a Chessboard:Associative Arrays



The use of associative arrays in JavaScript allows to add some object-oriented capabilities in a classical procedural programming. Here is a small explanation through our classical Drawing a Chessboard example.

Learning Tomography: WBP 3D reconstruction



In this series Learning Tomography, I always work with 2D slice ... Here is an example of a 3D reconstruction calculated with the weighted (or filtered) back-projection algorithm. The input data correspond to the stack of sinograms (previously calculated here [Link]).

Thursday, November 29, 2012

Learning Tomography: Where are the sinograms?



In a tomographic project, 2D data are collected (from a specific device using X-rays,  electrons, etc.) and must be used to compute a 3D-reconstruction. From the previous posts of the series Learning Tomography, the primary input data is the sinogram. However, where are they located in a 2D-data collection?

Tuesday, November 27, 2012

Drawing a Chessboard: Object-Oriented flavor



JavaScript is really interesting because it has some Object-Oriented capabilities. Here is a small explanation through our classical Drawing a Chessboard example.

Monday, November 19, 2012

Drawing a chessboard in JavaScript


Programming with ImageJ is really easy with the built-in macro language. However, for some more sophisticated scripts, it is - sometimes - interesting to access low-level functions only available in the ImageJ programming interface (I mean only available for Java programmers). For fast prototyping, a good alternative is the use of the JavaScript language.

Wednesday, November 14, 2012

Learning Tomography: Multiplicative ART




There are several variants of the Algebraic Reconstruction Techniques (ART): One of them is Multiplicative ART (MART) based on the same principle but the error is calculated as a ratio.

Wednesday, November 7, 2012

Learning Tomography: Adding Constraints



The computation time for iterative reconstruction techniques (IRT) is typically orders of magnitude longer than for Weighted (Filtered) Back-Projection algorithm [Link], however, IRT are powerful  because during the iteration process, you are able to add constraints to enhance convergence.

Monday, November 5, 2012

Learning Tomography: ART (Part II)



 After introducing the principle of ART according to Kaczmarz method in the last post [Link], it's time to implement it in ImageJ with JavaScript language...

Friday, October 26, 2012

Learning Tomography: ART (Part I)



Algebraic Reconstruction Techniques (ART) is another family of algorithms to compute reconstructions. Here is a first approach to understand the principle of these programs.

Thursday, September 27, 2012

Signed, Unsigned pixel values



Among the various image types proposed to import a gray-level image, even though you know the dynamic range of your image, you have to choose 'signed' or 'unsigned'...


Friday, September 21, 2012

RGB file: Packed or Planar?



Save RGB color images requires specific strategies - compared to the gray-level images - to store the three red, green, and blue values defining a pixel. Two main strategies exist: Packed and Planar.

Endianness



In this series of posts dedicated to image file, the endianness is one of the parameters available in the Import dialog box. What is this strange 'little-endian byte order'?

Thursday, September 20, 2012

Image File: TOC



Table of Contents of a series of posts dedicated to the image file.
When you saved an image - 2D array containing pixel values - in your hard disk, this array is converted into a new structure: the file...

Wednesday, September 12, 2012

Learning IJ scripting language: Part II



IJ Scripting Language - Part II: Table of Contents

In this series of posts, more programming techniques of the ImageJ scripting macro language are detailed...


Thursday, September 6, 2012

Learning Tomography: Angular coverage



After studying the impact of the number of projections [Link], it is time to explore the ins and outs of the angular coverage and its consequences on the quality of the reconstructed image.


Wednesday, September 5, 2012

Learning Tomography: How many projections?



Two parameters are crucial to compute a good reconstruction: the  number of projections and the angular coverage. Through several examples, we'll see their impact on the reconstructed image.

Wednesday, August 29, 2012

Learning Tomography: TOC


 

Table of Contents of this series dedicated to tomography and to the various algorithms used to compute a reconstruction from a series of projections.

Learning Tomography: Managing Borders




How to manage borders in sinogram computation ?



Tuesday, August 28, 2012

Learning Tomography: Radon Transform



In the previous posts, I assume that the sinogram was already collected (or calculated) and we only focused on the process of reconstruction. Now, it is time to see how a sinogram can be computed from a given 2D slice (extracted from 3D data). 

Monday, August 27, 2012

Learning Tomography: 2D reconstruction in action




To see the Weighted Back-Projections 2D-reconstruction in action, I created a small video clip ...


Image Processing: Table of Contents



Image Processing: Table of Contents

To improve the navigation through CrazyBioComputing, this post groups all the tables of contents (TOC) of the various chapters I explore with ImageJ in the fields of image processing and analysis...


Wednesday, August 8, 2012

Learning Tomography: Weighted Back-Projection



In my last posts, we were able to compute a 2D-reconstruction from a series of 1D-projections ... but the result appears blurred. How can we fix this?



Friday, August 3, 2012

Learning Tomography: Improving our BackProj script



A small post to see how the IJ script can be improved to avoid the stack of intermediate back-projections which is very memory consuming.



Thursday, August 2, 2012

Learning Tomography: Simple Back-Projection



The simple back-projection is one of the most popular algorithm used to reconstruct an object from a series of projections. In this post, we'll study how to reconstruct a 2D image from 1D-projections.


Wednesday, May 23, 2012

Drawing a chessboard using Stack Tools




A really non optimized way for Drawing a Chessboard but a good opportunity to explore the functions available in Image > Stacks, specially those located in the submenu Stacks > Tools.

Wednesday, March 7, 2012

Creating a GL context



First post of this series dedicated to webGL and the visualization of macromolecules from atomic coordinates stored in Protein Data Bank (PDB).


Thursday, February 9, 2012

Morphological Dilation



Morphological dilation is the second basic operator in MM [see TOC] and the counterpart of the erosion [see post].

Wednesday, February 8, 2012

Drawing a chessboard from morphological dilation



A special Drawing a chessboard using morphological dilation to try different structuring elements and observe their influence on the starting dots (acting as seeds).


Monday, February 6, 2012

WebGL: Visualizing macromolecules



Table of contents

A new series of posts dedicated to WebGL and javascript in the context of macromolecules visualization.


ffmpeg: The video toolbox



ImageJ is rather limited to import various video formats. However, there is a very powerful toolbox for video conversions: ffmpeg.
 For beginners, this tool seems rather intimidating to use because it's only available as a command line (there is no graphical user interface). In this post, I'll show you some of the options needed to convert any video...

Monday, January 30, 2012

2.5D and 3D ...



Section dedicated to techniques about 2.5D and 3D