Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Image processing Basics

I am planning to do a project on Image Processing, my knowledge in this subject in general is low. My Preferred Language is C++.

Can the members out here give me:

  1. A Brief idea of What Image Processing is?
  2. What books should i consult [ please keep in mind i am a beginner and am ONLY interested in making a college Project ]
  3. What libraries can i use? [ I know about Boost/OpenCV etc. I would like to know what simplest and can get my project done quickly - its a minor project ]

Apart from the above 3 points, anything which i should know if be told to me will be of good help. Thanks in Advance.

like image 823
Tempo Avatar asked Jul 18 '11 12:07

Tempo


3 Answers

I would suggest reading a good book. Image processing is not a programming field - it's an engineering field and it involves mathematics and signal processing knowledge and intuition. The Gonzalez and Woods Image Processing is quite good and doesn't require a vast knowledge of signal processing before you start reading it. The bottom line is you don't learn image processing like you learn a new programming language; you learn it like a completely new subject that just happens to involve coding. To break this up into answers to your questions,

  1. Image processing is a discipline of digital signal processing which is itself at an intersection of computer science and applied mathematics. It involves pixel-based image operations for purposes of image enhancement (color and contrast correction, denoising, deblurring), visual effects (spatial distortion, morphing, color-substitution), artificial vision (feature extraction, texture segmentation, pattern identification, spatial perception). There are also many narrowly applied areas of image processing such as RADAR image processing, medical image processing, etc.

  2. The book I mentioned above is really a great read. If it's a bit pricey for you, I always find it useful going to Amazon and searching for an inexpensive older edition used book on the subject with a five star rating. Never failed me yet. Beware of getting books that are too old though.

  3. There are plenty of libraries for the task, Boost/CImg are some of them, and it really depends on the platform you're coding for. However, I would think that an image processing project would not involve any libraries, instead you would be writing image processing filters and other operators yourself -- that's the essence of it. You would very likely use algorithm libraries though for faster computation. A project in image processing is not a software project; rather, it's an engineering project and using a library would kill the purpose completely. That is in my humble opinion, of course.

like image 91
Phonon Avatar answered Oct 06 '22 13:10

Phonon


Answer to 3.: CImg might be a good choice to start quickly.

like image 25
CharlesB Avatar answered Oct 06 '22 11:10

CharlesB


  1. Modifying the image data in such a way to get the desired effect (for example, change a colour image into black and white image).
  2. Very broad question, and the answer depends on what you want to do.
  3. Take a look into GraphickMagick or ImageMagick.
like image 1
BЈовић Avatar answered Oct 06 '22 13:10

BЈовић