#@gmic stack : _sciezka_plikow_wej,_liczba_cyfr,_poczatkowy_numer,_liczba_plikow, _dopuszczalna_roznica,_skalowanie_x=0,_skalowanie_przed_wyznaczeniem_roznicy=0 #@gmic : stackowanie obrazow z pominieciem obszarow ktorych niektore klatki nie obejmuja #@gmic : przykladowe wywolanie: -stack ksiezyc-puste-avg.tif,outframes/LICZBA.png,8,8000,5000,1000000 stack: darkname=$1 src_path=$2 src_digits=$3 src_first=$4 count=$5 maxdiff=$6 resizex=${7=0} diffresizex=${8=0} -i outframes/00012963.png -name[-1] target -i $darkname -name[-1] dark -if {$resizex>0} -resize2dx[target,dark] $resizex,3 -endif -mul[dark] -1 -add[dark] {-@{dark,m}} -add[target] [dark] -i @{target,w},@{target,h},1,1,1 -name[-1] pixcount --keep[target] -name[-1] accum -repeat {$count} #-if {u>0.001} -continue -endif srcfile=@{-strreplace\ $src_path,"LICZBA",@{-padint\ {$src_first+$>},$src_digits}} -i $srcfile -name[-1] incoming -if {$resizex>0} -resize2dx[incoming] $resizex,3 -endif -add[incoming] [dark] --cross_correlation[target,incoming] -name[-1] corr maxinfo=@{corr,C} maxx=@{-arg\ 1,$maxinfo} maxy=@{-arg\ 2,$maxinfo} -if {$maxx>@{corr,w}/2} maxx={$maxx-@{corr,w}} -endif -if {$maxy>@{corr,h}/2} maxy={$maxy-@{corr,h}} -endif -remove[corr] --shift[incoming] {$maxx},{$maxy},0,0,2 -name[-1] cycshift # shifted/cyclic for diff -shift[incoming] {$maxx},{$maxy} # shifted/crop for accumulation --sub[cycshift,target] -name[-1] diff -if {$diffresizex>0} -resize2dx[diff] $diffresizex,3 -endif -abs[diff] diff=@{diff,+} -remove[cycshift,diff] -echo "maxx="$maxx" maxy="$maxy" diff="$diff -if {$diff<$maxdiff} -add[accum] [incoming] -i @{accum,w},@{accum,h},1,1,1 -name[-1] mask -shift[mask] {$maxx},{$maxy} -add[pixcount] [mask] -remove[mask] -endif -echo xxxx -remove[incoming] -done -div[accum] [pixcount]