Thursday, December 29, 2011
README: how this blog is organized...
That's a post for beginners to show how my blog 'crazybiocomputing' is structured and connected to the mini-games of the genuine 'CrazyBioComputing' [Link] ...
Processing
Table of Contents
How can I prepare an image for further analysis , How can I remove noise and improve my signal? How can I detect interesting features ? All these questions can be solved by using various functions and tools available in ImageJ.
Monday, December 26, 2011
Exploring Gradient Direction
When working with gradient (for edge detection), it's rather interesting to visualize its orientation by drawing arrows and that's a good opportunity to try my previously published function drawArrow(...) [see post].
Saturday, December 24, 2011
Friday, December 23, 2011
Drawing arrows in IJ script
Drawing arrows in a ImageJ macro/script is sometimes useful to display direction of a feature (oriented lines of interest, gradient,etc.) but this simple drawing isn't so straightforward...
Thursday, December 22, 2011
CMY(K) color image
CMY (or its variant CMYK) color space uses as primary colors: cyan, magenta, and yellow.
This color space used by printers is interesting because, this is an example of a subtractive color model. When you add color(s), you converge towards black color.
Tuesday, December 20, 2011
3D curves: the toric solenoids
After learning how to build and display spheres in 3D with ImageJ [see post], this post describes how we can use them for drawing a 3D curve...
Tuesday, December 13, 2011
Improving the Dissolve effect
In a previous post [Link], the fade-in, fade-out, and dissolve effects were described and computed in ImageJ for static images. Here are two main improvements...
3D models: the sphere
When working in 3D, there is always a need of 3D basic models to try new algorithms or to use them as building blocks. In this post, we'll see how to build a sphere and how we can move it in 3D without any additional plugins.
Tuesday, December 6, 2011
Using images as arrays in script
In my previous posts Using arrays in script... [TOC], we have seen in Part 1 how to store data in arrays using the built-in function newArray(...) and in Part 2, the use of Table windows (Results [Link] or any Table window [Link]). Here I'll describe how data storage can be done via images and how this technique is powerful for large arrays.
Monday, December 5, 2011
Fade-in, Fade-out, Dissolve video effects
When working on videos (stacks in ImageJ), it is always interesting to make transitions between video clips to finalize a small movie .... and that's possible with ImageJ.
Friday, December 2, 2011
The sieve of Eratosthenes
Finding prime numbers is a good exercise to improve your skills in the programming scripting language of ImageJ. Moreover, that's a good opportunity to use a 2D image as a temporary array.
Monday, November 28, 2011
Exploring colors and grays with ImageJ
How are stored the grays and colors in a digital image? This simple question is explored in this post thanks to the IJ programming language.
Friday, November 25, 2011
Numbers: binary, decimal, hexadecimal
Numbers used by computers and by extension by programming languages can be represented in different radix (base). Usually, the decimal notation is the most convenient - specially for human beings - but in certain circumstances, it's better to use the binary or hexadecimal notations.
Labels:
ECMAScript,
image,
ImageJ,
javascript,
script
Tuesday, November 22, 2011
Color wheel
Painters and computer artists, often use a color wheel which is composed of color hues arranged along a circle. There are some interesting features in such a presentation of this color table (also available in the HSV/HSL color space): primary, secondary, and complementary colors...
Tuesday, November 15, 2011
Digital Image
Table of contents of Digital Image
In image processing softwares like ImageJ, what's a digital image? how the grays, colors are encoded? how these data are stored in a file?
Thursday, November 10, 2011
Color images: RGB image
After the binary [Link] and gray-level images, the color images represent the last (and the most sophisticated) family of images used in image processing softwares. Colors are obtained by the combination of three primary colors. The latter may be different depending of the device displaying/printing the image.
In ImageJ, the most usual color images are encoded with the RGB color space.
Drawing a chessboard from a 2x2 unit cell
Thursday, October 27, 2011
Drawing a chessboard using boolean operators
A small use of boolean operators to draw my favorite chessboard and also a good example to use other functions like geometrical transforms.
Tuesday, October 25, 2011
Erosion in mathematical morphology
In mathematical morphology (MM) [see TOC], the basic operators are the erosion and dilation. Through several examples, we'll see what is the erosion and what we can do with it ...
Monday, October 24, 2011
Drawing a chessboard: Table of Contents
Through several examples, this series Drawing a chessboard - a simple and graphical object - is a very good opportunity to explore the built-in functions of the scripting language and the various operations and tools available in the ImageJ menus.
Binary images
Binary images (black and white) are everywhere in ImageJ, they are required in
Analyze > Analyze Particles
, have their own operators and functions.This post explains what they are and how to use them...
Mathematical morphology
Mathematical morphology (MM) [Wikipedia] is a great toolbox for image processing. In ImageJ, most of these operations are available for binary images and are often used to prepare an image before analysis. Moreover, the same operations can be used for gray-level images offering new functionalities in terms of filtering, segmentation,etc.
Thursday, October 20, 2011
Black and White, TRUE or FALSE?
When playing with binary images in ImageJ, that's not really simple to remember if TRUE corresponds to white or black (specially, if you use a lot of different binary functions). Here are simple examples to try to understand how it works.
Saturday, October 8, 2011
Tuesday, October 4, 2011
Boolean operators
One of the basic functions for binary images (containing TRUE and FALSE pixels) are the boolean operators useful to manipulate this kind of images.
Saturday, September 24, 2011
Test image: sawtooth wave
After the square wave [see post], another test image whose plot profile corresponds to a sawtooth wave [Wikipedia].
Friday, September 23, 2011
Test image: square wave
To try new features of ImageJ or debug a macro/script, there is always a need of test images. Here is a simple script to create one of them...
Thursday, September 15, 2011
Fourier Series
Understanding the Fourier Transform is not trivial. Here is a simpler approach (only for periodic signals) from the same author termed the Fourier Series.
Joseph Fourier [Wikipedia] demonstrated that any periodic function could be decomposed in a series of sine and cosine functions.
Joseph Fourier [Wikipedia] demonstrated that any periodic function could be decomposed in a series of sine and cosine functions.
Wednesday, September 14, 2011
Exploring an image file: dump
Understanding the architecture of an image file requires the use of a small utility program (in Unix world, 'od' is one of them) allowing to read byte per byte the contents of such a file. For this purpose, I developed a tiny image dump [Link] ...
Friday, September 9, 2011
Using arrays (part 2.1): Table window
The Results window [see post] is a 'must' in ImageJ for storing numbers like a spreadsheet and also contains tools to explore the data. A more generalized multicolumn window exists in ImageJ termed the Table window which is very useful specially if you need to play with strings and numbers.
Using arrays in script (part 2.0): Results window
Friday, September 2, 2011
Learning ImageJ scripting language
T a b l e o f c o n t e n t s
Once you are familiar with the various tools and menus of ImageJ, it's time to move to the dark side of the force and to start using the programming features of IJ via its macro/script. That's really useful specially if you have repetitive tasks and/or if you need precise data exploration.
Don't worry, learning a programming language is not so complicated and ...May the Force be with you...
Drawing a chessboard v2.1
This version of my series Drawing a chessboard is a minor update of the version 2.0 and is only different because it contains one loop to scan the image.
Labels:
chessboard,
ImageJ,
macro,
script
Drawing a chessboard v2.0
Another version in my series Drawing a chessboard. This is a little bit simpler than the previous one...
Labels:
chessboard,
ImageJ,
macro,
script
My first ImageJ macro/script
Once you are familiar with the various tools and menus of ImageJ, it's time to move to the dark side of the force and to start using the programming features of IJ via its macro/script. That's really useful specially if you have repetitive tasks and/or if you need precise data exploration.
Don't worry, learning a programming language is not so complicated and ...May the Force be with you...
Don't worry, learning a programming language is not so complicated and ...May the Force be with you...
Tuesday, August 23, 2011
ImageJ script: the loop
One of the main purposes of a ImageJ macro/script is to perform repetitive tasks. In programming languages (and in IJ script), this can be done by using a specific iterative mechanism: the loop.
Drawing a chessboard v3.0
The ImageJ scripting language is really powerful. Here is an application in my series Drawing a chessboard...
Labels:
chessboard,
ImageJ,
macro,
script
Drawing a chessboard with IJ script
Drawing a chessboard is a good exercise because you need all the basic tools of programming language: loops and conditional statement.
Labels:
chessboard,
ImageJ,
macro,
script
Monday, August 22, 2011
Using an iterator in ImageJ
Scanning all the pixels of an image to modify values or get some features is a common task when you develop scripts in ImageJ ... unfortunately, if your code contains too many loops, it will become difficult to read and debug . This can be improved using the function Process > Math > Macro... mimicking an iterator object found in modern programming languages.
Thursday, August 11, 2011
Conserver un historique de ses commandes: 'Recorder'
Après divers tâtonnements (une vingtaine de fenêtres sont ouvertes), l'application de plusieurs traitements (correction de luminosité / contraste, filtres, etc.), votre image est correctement traitée et son analyse vous donne entière satisfaction ... mais au moment de refaire la même chose sur une autre image, vous ne vous souvenez plus de la procédure et des paramètres que vous avez utilisés.
Il existe pourtant un moyen - peu utilisé - pour garder un historique de ces commandes: le Recorder. C'est aussi un bon moyen de s'initier à la programmation avec le langage Macro d'ImageJ.
Subscribe to:
Posts (Atom)