On 4/3/11 7:25 AM, Fawzi Mohamed wrote:
On 2-apr-11, at 10:40, aman bansal wrote:

i was trying to chalk out a strategy to go for image processing in
D.the closest reference i found was in the implementation of python
imaging library.it <http://library.it> has modules for imaging,and
input output of jpeg and bmp file formats.the data structures used
also are quite accurate.i would like to ask developers what can be the
possible problems in implementing image i/o in D on the lines of
python imaging library.

As I told you via email

there are two main things, one is reading/writing several formats, I
would say that you should support at least one standard (simple) format
natively (the simplest would be netpbm format) but then you could rely
on libraries to support more.
Use of external libraries should be discussed with others also, because
one should rely only on libraries that are widely available,
cross-platform and with acceptable licensing.

About the image processing itself you probably want to have a simple
flat representation of the image (as 2d array), and then be able to
apply several operations on it.
General convolution is probably something you want to have, masked
operation might also be very useful.
Not sure about which other operations you want to support.
In D1 as part of blip I have implemented nearest neighbor convolution,
it could be useful to you.

Not sure which bit depth you want to support, one can build a wrapper to
access arbitrary bit depth/bitchannel contiguous block of memory as 1d
or 2d array (for example 4channel 12 bit images), this can be useful as
base type for operations with images that might have an extended bit range.

is this for a GSoC project?

Yes, that is a GSoC project.

Aman, you may want to read the posts I wrote with advice to other students before completing your proposal.

A strong proposal would convince us that you (a) understand your domain rather well, (b) you understand D's specifics enough to define a good API for it, (c) you have studied and absorbed similar endeavors in other languages and frameworks, and (e) you have what it takes to complete the project.


Good luck!

Andrei

Reply via email to