# image processing question..

• 07-24-2008
kypronite
image processing question..
do I have to learn digital signal processing(dsp) to take on image processing?
I 'm not aiming to become computer scientist but rather I notice there's a algorithm called fourier and after some research ,I found out it's under a dsp.I took a peek on some of the dsp books and pretty intimidated by how thick it is.
Actually not the thickness of the book that bothers me but rather the inside of the book,those cryptic enigma codes inside.I always flunk my maths exam.But alas,going to programming world...I'm glad that I have to see all those terrible math equation.OH how wrong am I,I realize that favourite area of mine in C++,graphics require solid foundation in mathematics.But enough of me and my phobia of mathematics...
So my question is actually, what area of mathematics do I have to understand to create program like photoshop???
• 07-24-2008
matsp
This is not an easy subject to explain in one post.

Image processing contains MANY different subjects - for example, sharpening or blurrinare a different subjects than face or number plate recognition [although to some extent they are related in the sense that the recognition subjects relate to detecting edges of light vs. dark areas, which in turn involves scanning for transitions of some level or high contrast between one pixel and the next - or perhaps over a radius/range of 3-4 pixels going from light to dark or the other way around].

So what sort of image processing are you going to do?

A dsp is not really much different from a regular processor - the main difference is that it's got specialized hardware to perform certain types of math quickly (in particular "multiply and accumulate", so it can do something like x = a * b + c (or x = a * b + x or some other variation on that theme) as one instruction so that it can do LOTS of those in a short period of time. Regular processors can do the same thing, but it takes a faster processor to do the same thing).

To write a new copy of photoshop would probably require a team of some 50-100 people a couple of years, although I believe from what I've read/heard that Tom Knoll and two-three other people wrote the first version in about 2 years - and it had all the basic functions you get when you buy the current version - although I think it did not have layers - and you had to have a Mac to run it. I don't think there are that many lines of the original code in the current version tho'.

--
Mats
• 07-24-2008
kypronite
wow,It took a lot of people to build photoshop(I though it's around 20 people)...
by minimum,it tooks few years??I read there's one guy who take 8 years creating drawing program alone,pixel and it still haven't reach 1.0 version.
Anyway,thanks for your response.Yeah,you are right,there's alot of stuff there in image processing.I guess I still had a long way to go :P
• 07-24-2008
matsp
Quote:

Originally Posted by kypronite
wow,It took a lot of people to build photoshop(I though it's around 20 people)...
by minimum,it tooks few years??I read there's one guy who take 8 years creating drawing program alone,pixel and it still haven't reach 1.0 version.
Anyway,thanks for your response.Yeah,you are right,there's alot of stuff there in image processing.I guess I still had a long way to go :P

I have no idea how many people ACTUALLY were active in the creation of PhotoShop, but the credits of PS 7 which is the latest version I've got is a LONG list - how many of those actively worked on it, and how many "gave advice for 3 hours each month for 2 years" is a different question.

And understanding one or two techniques within image processing is different than completing the entire set of functions available in for example PhotoShop - there are LOTS of functions there, most of which no one ever uses more than twice in a life.

If you take a simple drawing program (say MS Paint) it can probably be written in a few months by a productive and suitably skilled programmer. But anything much beyond that would take quite a bit more time, because paint does mostly simple stuff, and the more advanced you go, the more complex the task is, and the more time needs to be spent.

--
Mats
• 07-24-2008
kypronite
yeah,you are right.I been programming in java,the first time I encounter java library.I told to myself omg,there's no way I can learn all these api.now I'm working in java web development,I rarely use most of them,only standard stuff like list,date.
thanks for the advice,really appreciate it.
• 07-24-2008
kypronite
Oh yeah just want to see this message board is awesome,I just been here for few hours and most of thread posted here are answered.
Next time ,I know where to go when I got difficulty with C++. :D
• 07-24-2008
m37h0d
creating a program like photoshop is one hell of a project.

why don't you try writing an extension for GIMP first?

i wouldn't worry so much about fourier analysis. while i'm sure it has applications in image processing, i can't off the top of my head imagine anywhere it would be strictly required.

i do some elementary image processing for creating real-time-charts and drawing icons and such. i've never had to use any higher math than basic algrebra. probably the most difficult problem i've encountered in image editing is interpolating between colors, but once i had a firm grasp of the RGB color system, that was really pretty easy too.

also, if you really want to get into DSP; the kvraudio DSP and plugin development forum is an excellent resource for that. audio plugin development is usually done in C++ and the guys there deal with all manner of DSP algorithms.
• 07-24-2008
kypronite