Showing posts with label ImageMagick. Show all posts
Showing posts with label ImageMagick. Show all posts

Thursday, March 27, 2008

Summary of all chapters

Currently I am busy with my other projects and I am not able to continue working on chapters on Draw and Pixel class and also on other useful small projects that you could perform. So meanwhile, I am uploading a file which has all my writing thus far. Enjoy reading.


Magick++ chapter 1 to 6 - Get more free documents

Monday, March 24, 2008

Chapter 6: Image class – Part 2

In chapter 4, we looked at the overview of the Image class and discussed a few functions, for filtering images, in detail using some example program. In this chapter, we will discuss a higher order image processing function like segmentation. We will first demonstrate a program for performing adaptive thresholding and then a program for performing fuzzy c mean clustering. Each of these algorithms will be explained and then the program will be illustrated to ensure complete understanding.


Continue reading the pdf file ...


Chapter 6: Image class – Part 2 - Get more free documents

Friday, March 14, 2008

Chapter 5: Exception class

In this chapter, we will focus on the Exception class, to identify errors in the Magick++ function calls at run time, ensuring easier debugging of code. We will compliment it with example program that will aid in the understanding of its use.

Continue reading the pdf below...


Chapter 5: Exception class - Get more free documents

Sunday, March 9, 2008

Chapter 4: Image class – Part 1

In this previous chapter, we looked at the overview of the various classes available in Magick++. In this chapter, we will focus on the Image class, the base class and learn its features and some of it functionalities. We will compliment these with example programs that will aid in the understanding of its use.

Image class

As indicated earlier, Image class is the main class in Magick++. It can
1.Read and Write almost all common formats including some field domain specific formats like dicom
2.Create new images
3.Perform image filtering1
4.Perform geometric image transformation
5.Improve quality of photographs
6.Perform image modification like slicing, bordering etc
7.Segmentation2
8.Set image attributes
9.and more such features which could not arranged in to this list

Continue reading the pdf below...


Chapter 4: Image class – Part 1 - Get more free documents

Sunday, March 2, 2008

Chapter 3: Introduction to Magick++ classes

In this chapter, we will look at an overview of the various classes available in Magick++. We will list the various classes and a brief description of their function and then a detailed look at how these classes work together in-order to create a good programming practise.

Magick++ classes
There are a total of 11 classes in Magick++. The major class is Image as it can read, write and create images. Other classes like Color, Geometry etc are used to support the functionalities in Image class and other classes. In the following table, the various classes are arranged roughly in the order of importance...

Continue reading the pdf file below...


Chapter 3: Introduction to Magick++ classes - Get more free documents

Sunday, February 24, 2008

Chapter 2: Compiling Magick++ program

In this chapter, we will look at a demonstration program to understand the method for compiling and linking a Magick++ program. Read the pdf file located below ...


Chapter 2: Compiling Magick++ program - Get more free documents

Wednesday, February 20, 2008

Chapter 1: Introduction to Magick++

I have been preparing programs that demonstrate the various capabilities of Magick++. I am planning to prepare them as a set of articles (around 10) that would demonstrate how Magick++ could be integrated in to your C++ program, thus providing an immense power in manipulating images.

In this tutorial, I would introduce some of the basics of Magick++ and in the next tutorial, we would work on the various classes that are defined in Magick++. Subsequently, we would prepare simple programs and with advanced features appearing as we progress.

Continue reading the pdf file below...


Introduction to Magick++ - Get more free documents

Monday, February 4, 2008

Reviewing ImageMagick

ImageMagick is a software suite for reading, writing and processing images. Over the years various functionalities have been added to the suite and the current version can read and write almost all common formats and also many not so common formats. It can also process these images using its various transformation, filtering etc. It is a free software and is available for all common OS.

It is so powerful that many other desktop applications and some online applications like flickr.com have been developed around it. So whether you are looking for a simple image conversion or you want to program your website to serve users image processing needs, ImageMagick can handle it for you.

Why ImageMagick?
1. If the various operations in image processing can be classified in to input, processing and output, ImageMagick provides functionalities that perform all these three operations.
2. ImageMagick provides a set of libraries that allow reading and writing about 100 different formats. So that the user can concentrate more on the image processing than on the file input and output (I/O).
3. ImageMagick can be used in command line in almost all the common operating systems like Windows, Linux, UNIX and Mac etc by combining the read, write and image processing operations.


Other features:
1. Read and write files from over 100 different file formats. These include the commonly used formats like GIF, JPEG, PNG and TIFF etc. Refer http://www.imagemagick.com/www/formats.html for complete list.
2. Modify shape, size and orientation of the images
3. Add different effects like blur, emboss, swirl etc
4. Create GIF and movie sequences
5. Draw vector graphics on the images
6. Perform image composition
7. Decorate an image with a border or frame
8. Combine all these operations with different programming languages using APIs to create powerful image processing functionality

Why ImageMagick APIs?
1. Command line tools do not lend themselves to large programs.
2. The number of file formats is finite and definitely only a few of them are used universally. But the number of image processing operations is infinite as the individual operations can be mixed and matched. Hence, the programmer needs flexibility in creating their own image processing routines. ImageMagick fills this gap by providing APIs.
3. APIs also allow access to the individual pixels in an image and hence can perform low level image processing operations as well.
4. Two people are not alike and definitely two programmers are not alike. So, ImageMagick provides a multiple choice for programming environment. A Java developer need not be constrained to use C++ for his image processing operations.
5. This also allows ImageMagick to be used in different environment,
a. Desktop applications using C, C++, LabView, Pascal and Tcl/Tk
b. Internet based applications using COM+, Java, .NET, PHP, Python and Ruby

This listing demonstrates the range of applications that can be developed using ImageMagick and does not in any way limit the imagination of the programmer. PHP can also be used to write desktop application while C++ can be used to write command line operations which in turn can be used in an internet based application.

Please check this and this website for some examples on ImageMagick. Also check this website for introductory tutorials on various ImageMagick API.

Monday, November 12, 2007

Did you know that ... Part 1

1. Images are identified using Magic number. If you open a gif file in a text editor, you will notice the magic number representing gif, GIF89a. These numbers are not limited to images alone, even pdf and postscript files can be identified. In fact it can be used to identify most of the file formats

2. ImageMagick is used by flickr.com for their image processing

3. The much used picture of Lena (below) for image processing is the Playboy centerfold picture of the Swedish model, Lenna Soderberg

4. Mencoder is a command line tool for editing movies much like Imagemagick is a command line tool for editing images

5. Mplayer is the close cousin of Mencoder and can be used for viewing movies

6. ffmpeg is another tool for editing movies and is believed to be used in youtube.com to convert the uploaded videos in to flash video (FLV) format.

7. Google has implemented a face recognition in its search. The images of face can be seperated from google image search result by typing "&imgtype=face" at the end of the url.

Sunday, November 11, 2007

Comparing different DICOM viewers

Digital Imaging and Communication in Medicine (DICOM) is a standard format for encoding and transmitting medical CT and MRI data. This format stores the image information along with other data like patient details, acquisition parameters etc. Since DICOM standards have become popular, many image processing readers and viewers have been created to read, process and write images. There are so many such software and its details can be seen here.

Since the details of the various software can be obtained using the previous website, in this blog we will classify some of these softwares based on the user requirement and discuss accordingly.

The users might need
1. A simple viewer with limited manipulation like ezDICOM
2. A viewer with ability to manipulate images and perform rendering like Osirix
3. A viewer with image manipulation capability and also extensible with plugins like ImageJ
4. A command line reader and viewer that allows batch processing like ImageMagick

There are more softwares that can be classified under the four categories but we will limit to these software for this blog. This does not limit the number of software available for viewing and manipulating dicom image, rather helps users choose the software right for them.

ezDICOM
It is a viewer that provides sufficient functionality that allows users to view and save dicom files without installing any software in their system. It is available only for Windows OS. It can read dicom files and save them in other file formats. It can also convert image files to Analyze format.

Osirix
It is a viewer with functionality that you might generally find in expensive workstation. It works great and it is free! But unfortunately, it is available only in MacOSX.
Like other dicom viewer, it can read and store files in different file formats and as movies. It can performs Multi-planar Reconstruction (MPR), 3D surface rendering, 3D volume rendering, endoscopy. It can also view 4D dicom data. The surface rendered data can also be stored as VRML, STL files etc. In short, I would highly recommend it if you have a Mac system.

ImageJ
ImageJ was funded by National Institute of Health (NIH) and is available as open source. It was written in Java and users can add their own Java class or plugins. It is available in all major operating system like Windows, Linux, UNIX, Mac etc. It can read all dicom formats and can store the data in various common file formats and also as movies. The plugins allow various image processing operation. Since the plugins can be easily added, the complexity of the image processing operation is just limited by the users knowledge of Java.

ImageMagick
If the various operations in image processing can be classified in to input, processing and output, ImageMagick provides functionalities that perform all these three operations. ImageMagick can be used in command line in almost all the common operating systems like Windows, Linux, UNIX, Mac etc by combining the read, write and image processing operations. Since ImageMagick is a command line tool, it can be used in any scripting language like perl, PHP, shell script etc. For users who are more adventurous, ImageMagick also provides APIs that allow programming low level image processing operation.

If you want to be even more adventurous and would like to program in C and C++, check out dicom toolkit.