Release of G'MIC 2.8

@David_Tschumperle I was updating to see if Fibonacci filter arrived to g’mic. It did not, so I’m guessing there is going to be a stable release of 2.8 soon.

There is one minor syntax change in the G’MIC language that probably makes future versions of the G’MIC stdlib not compatible with current version 2.8.0_pre, so I suggest you update your binaries for 2.8.0_pre as soon as possible.

Basically, the selection shortcuts ., .. and ... (resp. for [-1], [-2] and [-3]), will be accepted also between brackets []. That way, it’s now valid to write something as a[0,.] c (rather than a[0,-1] c).

… very good extension to write scripts!

If I am reading this correctly, I always run into this problem when I take in user input. I have to code around this in awkward ways, including changing the way the command behaves. One more request: would it be possible to have a way to convert dot shortcut strings to the long form? That would help make console output text clearer.

BTW,

is that an extra not?

It’s now valid, sorry.

Not sure I understand what you mean here. Details and examples?

Is it possible to do this?

f "a=[0,1,2,3];b[4,5,6,7];merge(a,b) #[0,1,2,3,4,5,6,7]#"

For context, I am rewriting rep_stitch. That means I would need to get n channels value based on values found in a combined set of channel values inside a vector that contains a size of values multiplied by channel numbers.

No, but :

f "a=[0,1,2,3];b[4,5,6,7]; c = [ a,b ];  #[0,1,2,3,4,5,6,7]#"

Hi David.

Question and request - can you expand the information contained in:
List of filters in the G’MIC plug-in
https://gmic.eu/gui_filters.txt

I will give an example:
Artistic / Anguish (command 'samj_Angoisse_en')

Information from gmic_qt_log:

  • [gmic_gimp_qt]./preview/ v 0 samj_Angoisse_en 1,5,0,5,100,2,4,1,250
  • [gmic]-1./ Start G’MIC interpreter.
  • [gmic]-1./samj_Angoisse_en/samj_Angoisse/ Set local variable ‘iterations=1’.
  • [gmic]-1./samj_Angoisse_en/samj_Angoisse/ Set local variable ‘dog_sigma1=5’.
  • [gmic]-1./samj_Angoisse_en/samj_Angoisse/ Set local variable ‘dog_sigma2=0’.
  • [gmic]-1./samj_Angoisse_en/samj_Angoisse/ Set local variable ‘sw_threshold=5’.
  • [gmic]-1./samj_Angoisse_en/samj_Angoisse/ Set local variable ‘smooth_amplitude=100’.
  • [gmic]-1./samj_Angoisse_en/samj_Angoisse/ Set local variable ‘noise_amplitude=2’.
  • [gmic]-1./samj_Angoisse_en/samj_Angoisse/ Set local variable ‘noise_type=4’.
  • [gmic]-1./samj_Angoisse_en/samj_Angoisse/ Set local variable ‘opacite=1’.
  • [gmic]-1./samj_Angoisse_en/samj_Angoisse/ Set local variable ‘sharpen_amplitude=250’.

Information from updatexxx.gmic:


#@gui Artistic
#@gui Anguish : samj_Angoisse_en, samj_Angoisse_en(1)
#@gui : note = note(“Iterations”)
#@gui : Iterations = int(1,1,3)
#@gui : note = note(“Dog”)
#@gui : Sigma 1 = float(5,0,10)
#@gui : Sigma 2 = float(0,0,10)
#@gui : note = note(“Segment Watershed”)
#@gui : Threshold = float(5,0,10)
#@gui : note = note(“Smooth”)
#@gui : Amplitude = float(100,0,200)
#@gui : note = note(“Noise”)
#@gui : Amplitude = float(2,0,10)
#@gui : Type = choice(4,“Gaussian”,“Uniform”,“Salt and pepper”,“Poisson”,“Rice”)
#@gui : note = note(“Blend”)
#@gui : Opacity = float(1,0,1)
#@gui : note = note(“Sharpen”)
#@gui : Amplitude = int(250,0,500)
#@gui : sep = separator(), note = note(“Author: Samj. Latest Update: 2015/03/27.”)
samj_Angoisse_en :

New List of filters in the G’MIC plug-in (something like a PDB database):

Artistic / Anguish (command 'samj_Angoisse_en iterations(1,1,3),dog_sigma1(5,0,10),dog_sigma2(0,0,10),sw_threshold(5,0,10),smooth_amplitude(100,0,200),noise_amplitude(2,0,10),noise_type(4,“Gaussian”,“Uniform”,“Salt and pepper”,“Poisson”,“Rice”),opacite(1,0,1),sharpen_amplitude(250,0,500)

A big “Thank you !” to the 49 sponsors who donated to support our project, in October and November !

gmic_oct_nov

I’m currently working on improving the way the verbosity of the messages is managed in G’MIC.
Big changes on the way.
Basically, the use of the commands verbose will be very reduced in the future, most of the commands just won’t need to deal with that, as things will be done automatically.

Still a lot of things to fix right now, but I’m on the right way :slight_smile:

3 Likes

Bug? I probably ran out of memory, a usual occurrence.

gmic a0.gmz afre_y50 1 colormap 0
[gmic]-0./ Start G'MIC interpreter.
[gmic]-0./ Input file 'a0.gmz' at position 0 (1 image 6016x4010x1x3).
[afre]^_^) y50: Compute luminance (D50 Rec.2020) of image [0].
[gmic]-1./ Estimate full colormap for image [0].terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

It works for me:

$ gmic sp lena,6000 afre_y50 1 colormap 0
[gmic]-0./ Start G'MIC interpreter.
[gmic]-1./ Input sample image 'lena' (1 image 6000x6000x1x3).
[afre]^_^) y50: Compute luminance (D50 Rec.2020) of image [0].
[gmic]-1./ Estimate full colormap for image [0].
[gmic]-1./ Display image [0] = '[colormap of lena]'.
[0] = '[colormap of lena]':
  size = (273023,1,1,1) [1066 Kio of floats].
  data = (27.632,27.6776,27.911,27.9566,28.1901,28.3529,28.3985,28.4441,28.5864,28.632,28.6776,28.7232,(...),225.902,225.922,225.938,225.948,225.983,225.993,226.029,226.08,226.09,226.126,226.135,226.171).
  min = 27.632, max = 226.171, mean = 136.19, std = 38.806, coords_min = (0,0,0,0), coords_max = (273022,0,0,0).

I have 4GB of RAM, and run Ubuntu Linux.
Are you running it on Windows ?

I’m planning to release stable version 2.8.0 in the next days.

Do you have any suggestions for improvements that can be done in a reasonable amount of time ?

Maybe some more explanation of the new verbosity? I like it, still for
gmic osteo +pink asf,5
level 9 (v 9) was necessary to get the most of it, to see what happens, including the external commands in this example.
Is it possible that program control commands like repeat change the verbosity level too?

The post I’ve made explain it all. There is not much more to say about this.
The big difference compared to the previous behavior, is that each time you enter a new command, the verbosity is decreased, so if you plan to display some messages on the console in a command that is called in a ‘deep’ scope, then you can force it to be verbose by starting it with v 0.

  • 2019/12/04 : Release for version 2.8.0 !

Win10 with 4GB RAM.

I’ve tested yesterday on my virtualized Win7, with 3Gb RAM, and it worked…
4Gb seems more than enough for doing this operation BTW.

I just tried to compile from git using:

git clone https://github.com/dtschump/gmic.git && git clone https://github.com/c-koi/gmic-qt.git && make -C gmic/src CImg.h gmic_stdlib.h && cd gmic-qt && qmake HOST=gimp && make

Compilation failed soon after download:

Project MESSAGE: GMIC_PATH was not set: Found gmic sources in ../gmic/src
Project MESSAGE: G'MIC repository was found (../gmic/src)
Project MESSAGE: G'MIC version is 281
Project MESSAGE: CImg version is 280
Project ERROR: Version numbers of files 'gmic.h' ( 281 ) and 'CImg.h' ( 280 ) mismatch

Do I need to update the command line instructions or is it something else?