Re: [Gimp-developer] http://wiki.gimp.org/

2011-03-31 Thread Burnie West
On 03/31/2011 01:44 PM, Martin Nordholts wrote:
> On 03/31/2011 02:40 PM, Michael Natterer wrote:
>> Hi all,
>>
>> I'm pleased to announce that the new GIMP developer wiki
>> has found its way home and is reachable as wiki.gimp.org now.
> That's great! I have removed 'GIMP' from the roadmap title now since the
> domain itself has enough GIMP-weight, the roadmap can now be found at:
>
> http://wiki.gimp.org/index.php/Roadmap
>
>
>> Thanks a lot to LightningIsMyName and Alexia for starting,
>> hosting, and taking care of the wiki.
> Indeed, thank you Alexia and LightningIsMyName.
>
>/ Martin
And my thanks to the two of you as well - the organization and content of the 
wiki gives me some confidence I might be able to contribute in future :)
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] http://wiki.gimp.org/

2011-03-31 Thread Martin Nordholts
On 03/31/2011 02:40 PM, Michael Natterer wrote:
> Hi all,
>
> I'm pleased to announce that the new GIMP developer wiki
> has found its way home and is reachable as wiki.gimp.org now.

That's great! I have removed 'GIMP' from the roadmap title now since the 
domain itself has enough GIMP-weight, the roadmap can now be found at:

http://wiki.gimp.org/index.php/Roadmap


> Thanks a lot to LightningIsMyName and Alexia for starting,
> hosting, and taking care of the wiki.

Indeed, thank you Alexia and LightningIsMyName.

  / Martin


-- 

My GIMP Blog:
http://www.chromecode.com/
"Why GIMP 2.8 is not released yet"
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


[Gimp-developer] Idea for the GSoC

2011-03-31 Thread Timothé Mermet-Buffet
Hi all,

I want to improve the user interface of Gimp concerning filters.

Currently, all the filters are in the same menu distributed in groups. But
only with the name, it's difficult to have an idea of the result of each
filter.

So, my idea is to create a new dock with le list of filters. And for each
filter, to have a preview before and after applying with choosen examples.
The user has just to click on the filter to obtain the configuration window,
and click Ok to apply the filter.


Regards

--
Tim
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] GsoC - 2011 - Porting GIMP plugins to GEGL operations

2011-03-31 Thread Robert Sasu
I wrote the code review for 2 more plug-ins: Cartoon and Photocopy

Gimp dialog function do all almost the same thing: Let the user choose the
parameters for each plugin by opening a box with a preview box. While
changing the parameters it changes the preview image until the user press
the ok or the cancel button.
We can say the same thing for run function (almost the same). It gets the
drawable in the drawable structure the sets the tile cache size, gets data
from the keyboard and run the dialog, if there is no dialog it initiates its
own values for the plug-in. Checks if everything is all right, run the
plugin and stores the data.

1. Cartoon (in gegl the base class would be AREA FILTER):
Algorithm:
For each pixel it calculates the pixel intensity by comparing the pixels
relative intesity to its neighborhood pixels and to the relative intensity
difference to total black .
Let say mask radius is equal with radius of pixel neighborhood for intensity
comparison, threshold is the relative intensity difference which will result
in darkening, ramp is the amount of relative intensity difference before
total black and blur radius is mask radius per 3.
Then the new intensity of the pixel will be:
 relative difference = pixel intensity / average (mask radius)
 If relative difference < Threshold
 intensity multiply = (Ramp - MIN (Ramp, (Threshold - relative difference)))
/ Ramp
 pixel intensity =old intensity * intensity mult

static void cartoon:
Checks for the preview, then sets the width and height of the drawable
image, gets the image type (bytes) and the aplha value (has_alpha). It
initialize the 5 vectors and 2 destination image structures (dest1 for blur
radius and dest2 for mask radius). Calculates the standard deviations from
blur and mask radius. Then derives the constant values for calculating the
gaussian's from the deviations (via the 4th order approximation of the
gaussian operator).
Like in the case of gaussian blur the calculation of the new values of the
image is linear so the calculation can be devided for 2 directions. First
calculates the values for every column then for every row.
Calculating for every column: firstly initializes and calculates the first
and the last pixel of the column. Then with the help of the gaussian
constants it calculates every pixel of the column the transfers the pixels
to the destination image.
It will do the same calculations in case of the horizontal direction.
After calculating the blakc percentage value (ramp). Then calculates the new
intensity for each pixel:
relative difference = pixel intensity / average (mask radius)
 intensity multiply=1
 If relative difference < Threshold
 intensity multiply = (Ramp - MIN (Ramp, (Threshold - relative
difference))) / Ramp
 pixel intensity =old intensity * intensity multiply
 Before upgrading the drawable image transfers the calculated destination
image structure from RGB format to HLS, sets the lightness and converts
back.

computer ramp:
Calculates the ramp value (intensity difference from total black) by
calculating the difference between the destination images (one calculated
with blur radius the other with mask radius), and hysterizes the difference.
Then compares the hysterized values to the percentage of the black color and
calculates the relative intensity via average.


2. Photocopy (in gegl the base class would be AREA FILTER):
Propagates dark value in an image based on each pixel's relative
darkness to a neighboring average. Sets the remaining pixels to white.
The plug-in differs a little from the cartoon plug-in.
Algorithm:
Using the same notations as in the cartoon plug-in the new intensity of
every pixel will be:
elative diff = pixel intensity / avg (mask radius)
 If relative diff < Threshold
intensity mult = (Ramp - MIN (Ramp, (Threshold - relative diff))) / Ramp
pixel intensity *= intensity mult
 Else pixel intensity = white

static void photocopy: It is almost the same as in the cartoon plug-in.
Desaturates the image, checks for the preview, then sets the width and
height of the drawable image, gets the image type (bytes) and the aplha
value (has_alpha). It initialize the 5 vectors and 2 destination image
structures (dest1 for blur radius and dest2 for mask radius). Calculates the
standard deviations from blur and mask radius. Then derives the constant
values for calculating the gaussian's from the deviations (via the 4th order
approximation of the gaussian operator).
Like in the case of gaussian blur the calculation of the new values of the
image is linear so the calculation can be devided for 2 directions. First
calculates the values for every column then for every row.
Calculating for every column: firstly initializes and calculates the first
and the last pixel of the column. Then with the help of the gaussian
constants it calculates every pixel of the column the transfers the pixels
to the destination image.
It will do the same calculations in cas

Re: [Gimp-developer] GSoC 2011 Porting GIMP plugins to GEGL operations

2011-03-31 Thread sourav de
On Tue, Mar 29, 2011 at 11:57 PM, sourav de  wrote:

>
>
> On Tue, Mar 29, 2011 at 1:15 PM, sourav de  wrote:
>
>>
>>
>> On Tue, Mar 29, 2011 at 4:11 AM, Mukund Sivaraman  wrote:
>>
>>> Hi Sourav
>>>
>>> On Tue, Mar 29, 2011 at 12:36:04AM +0530, sourav de wrote:
>>> > Hi,
>>> >
>>> >I am a 2nd year student of the department of Computer Science and
>>> > Engineering at Indian Institute of Technology, Kharagpur ,and  I am
>>> > interested in the plugin for cartoonization of an image in GIMP.
>>>
>>> I gather you want to modify the cartoon plug-in in GIMP?
>>>
>>> The plug-in porting task that you have mentioned in the subject is to
>>> directly port GIMP plug-ins to GEGL ops.  No modification of
>>> functionality is necessary.  It is described here:
>>>
>>>
>>> http://gimp-wiki.who.ee/index.php?title=Hacking:GSoC_2011/Ideas#Porting_GIMP_plugins_to_GEGL_operations
>>>
>>> It is not a task of porting only 1 plug-in, but about 6-10 plug-ins per
>>> student.  1 plug-in is a very easy task and will not be sufficiently
>>> long for a full summer's work.
>>>
>>> To apply for this task, please present the items mentioned on the
>>> linked wiki page.
>>>
>>> 
>>>
>>> However, if you wish to modify the cartoon plug-in, that sounds
>>> interesting too.  It can be a different task.  Can you describe what is
>>> lacking in the current approach in the GIMP plug-in?  What is the
>>> algorithm that you plan to use ?  You say you are doing a project on
>>> algorithmic art..  have you published anything on the methods you wish
>>> to use in this cartoon plug-in?  Are you using any other published
>>> works?
>>>
>>> Note that we _may_ accomodate more tasks if they are of a high quality
>>> and we are satisfied with how the student presents it.
>>>
>>>Mukund
>>>
>>
>> Thank you sir, for your comments, I'll come up with the presentation of
>> those plug-ins mentioned in the wiki page and algorithm for the
>> cartoonization plug-in soon.
>> And for the project on algorithmic art, I took this project in my
>> current semester, I'll have to take the course Computer Graphics in my next
>> semester to complete the project. So far I haven't yet publish any paper.
>>
>>
>> --
>> Sourav De
>> 2nd Year Student
>> Department of Computer Science and Engineering
>> IIT KHARAGPUR
>>
>>
>I wrote the code review for gaussian blur as it given here
>
>http://git.gnome.org/browse/gegl/tree/operations/common/gaussian-blur.c
>
>
>But I'm not familiar with writing code review and algorithmic
> description. Here goes my code review.
>
>
> <---code review starts here>
>
> Gaussian blur operation code review:
>
> 1. function-1 : static void iir_young_find_constants (gfloat  sigma,gdouble
> *B,gdouble *b)
>
> a. the variable sigma is to avoid unexpected ringing at tile boundaries of
> an image.
> b. there exists a variable q, whose value must be remained in between 0 -
> 1.5, and according to the value of sigma there are two procedures to
> calculate the value of q.
> c. lastly it sets the value of the variables b[0] to b[3] and B, and then
> returns.
>
> 2. function-2 : static inline void iir_young_blur_1D (gfloat  * buf,gint
> offset,gint delta_offset,gdouble B,gdouble *b,gfloat  * w,gint w_len)
>
> a. this function blurrifies an image one dimensionally.
> b. wlen is the length of the 1d array w passed.
> c. here an image would be blurrified in two steps, applying forward and
> backward filter for each pixel, a local variable wcount counts the number of
> pixels each time.
> d. the filter would be applied to the image according to the passed array
> w.
>
> 3. function-3 : static void iir_young_hor_blur (GeglBuffer *src,const
> GeglRectangle *src_rect,GeglBuffer *dst,const GeglRectangle
> *dst_rect,gdouble  B,gdouble *b)
>
> a. this function blurrifies an image horizontally.
> b. first it creates an one dimensional array buf whose length is
> height*width*4, where height and width is height and width of the source
> image rectangle.
> c. then it creates another one dimensional array w with the length of the
> width of the source image.
> d. after then it fills the values of buf array according to the source
> image in RaGaBaA format.
> e. then it applies the iir_young_blur_1D function to the newly generated
> ractangles.
> f. lastly it stores the change in a destination array and returns.
>
> 4. function-4 : static void iir_young_ver_blur (GeglBuffer *src,const
> GeglRectangle *src_rect,GeglBuffer *dst,const GeglRectangle
> *dst_rect,gdouble  B, gdouble *b)
>
> a. this function blurrifies an image vertically.
> b. first it creates an one dimensional array buf whose length is
> height*width*4, where height and width is height and width of the source
> image rectangle.
> c. then it creates another one dimensional array w with the length of the
> height of the source image.
> d. after then it fills the values of buf array according to the source
> image in RaGaBaA format.
> e. then it applies the iir_young_blur_1D f

[Gimp-developer] http://wiki.gimp.org/

2011-03-31 Thread Michael Natterer
Hi all,

I'm pleased to announce that the new GIMP developer wiki
has found its way home and is reachable as wiki.gimp.org now.

Thanks a lot to LightningIsMyName and Alexia for starting,
hosting, and taking care of the wiki.

--Mitch
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer