Looking for free simple software

Hi, I am writing my bachelor’s degree in mathematics and it’s about ‘salt and pepper’ denoising. My question is: is there a free computer environment in which I could operate on photo as a matrix and write algorithms on it?
In my paper I want to apply different algorithms on grey photos(0-255 scale) with saltnpepper noise and than compare the results of different algorithms.
So what is the simplest way to do it?
sorry for my English :slight_smile:

Hello Filip,

Since you have posted this to the ImageJ Forum, I will
mostly give you an ImageJ answer.

Fiji / ImageJ would not be inappropriate for the purpose
you describe. Fiji is free software, it’s a gui-based
platform for image processing, and you can write your own
scripts and plugins for it.

It will let you read and write image files to and from disk,
create and modify images, display images and zoom and crop,
and it contains a large number of pre-built image-processing
tools. It originated in the biological-image-processing
community, and many of its pre-built tools are directed at
biological image processing. Using the Fiji gui is relatively
simple, assuming it has the tools you want (and you’ve found
them). Programming plugins for Fiji / ImageJ is relatively
straightforward (as much so as can be expected), but you will
have to get up to speed with the ImageJ framework and its core
data structures.

ImageJ does work with 8-bit gray-scale (0–255) images (among
other image types), and can store them as arrays, although if
you are programming alogrithms in the ImageJ framework, you
might be better off using ImageJ’s pixel-access functions.

It has a built-in tool for adding salt-and-pepper noise to an
image.

Relevant to your purpose of developing your own algorithms,
you can write and run your own algorithms within ImageJ using
python, as well as a number of other scripting languages.
If you’re comfortable programming in java, ImageJ itself
is written in java, so for more elaborate development work,
writing your algorithms as ImageJ plugins in java would
probably be the most practical approach.

Alternatives might be Open CV, an open-source computer vision
library in c++ (more specifically focused on computer vision, but
still, that’s all about image-processing algorithms).

Octave is an open-source mathematical / numerical computing
platform that is largely compatible with the non-free,
proprietary matlab. Although more general purpose, there
is a lot of image processing done in the octave / matlab
community, so that might be a sensible platform for your
project, especially if you are already familiar octave /
matlab programming. (ImageJ has some sort of support for
matlab interoperability, but I have never used it, and I
am under the impression that it does not work with octave.)

Thanks, mm

2 Likes

Some other info you may find useful…

With ImageJ/FIJI you can do a File | Save as… and select “Text Image” as the type. The resulting file will have rows and columns of your 0-255 pixel values. This would be useful for examining effects of your algorithms.

Outside the ImageJ realm, there is also a significant community of people using Python for image processing. Google should show a lot, but Numpy, SciPy, Matplotlib, and scikit-image would be a place to start. SciPy is a collection of Python tools for scientific computing in Python. NumPy is part of that, providing the data structures to hold array and matrix data, Matplotlib has tools for plotting, and scikit-image has image processing algorithms. It’s pretty easy to get into manipulating data with these tools. Easier than Matlab, IMHO, if you would be learning both from scratch.

Hi All,
If you save the image as a text image as suggested then Excell will open it with no trouble and use can use all those available tools.
Bob