function longLinenoise($myImage,$dimImage,$strength,$freq) { $indexWhite = imagecolorexact($myImage,255,255,255);
$indexBlack = imagecolorexact($myImage,0,0,0);
for($i = 0 ;
$i < $dimImage[0] ;
$i++) { for($j = 0 ;
$j < $dimImage[1] ;
$j++) { if(rand(1,$freq) >= 20) {
} else { $currColor = imagecolorat($myImage,$i,$j);
if(isCloseColor($myImage,$currColor,255,255,255,10)) continue;
$nb_lignes = rand(1,intval($strength/10));
$length = rand(intval($strength/5),$strength);
drawLignes($myImage,$dimImage,$currColor,$i,$j,$nb_lignes,$length);
} } } } function drawLignes($myImage,$dimImage,$color,$x,$y,$nb_lignes,$max_length) { for($i = 0 ;
$i < $nb_lignes ;
$i++) { $xmin = $x-$max_length;
if($xmin < 0) $xmin = 0;
$ymin = $y-$max_length;
if($ymin < 0) $ymin = 0;
$xmax = $x+$max_length;
if($xmax > $dimImage[0] - 1) $xmax = $dimImage[0] - 1;
$ymax = $y+$max_length;
if($ymax > $dimImage[1] - 1) $ymax = $dimImage[1] - 1;
$x2 = rand($xmin,$xmax);
$y2 = rand($ymin,$ymax);
while(sqrt(pow($x2-$x,2) + pow($y2-$y,2)) > $max_length) { $xmin = $x-$max_length;
if($xmin < 0) $xmin = 0;
$ymin = $y-$max_length;
if($ymin < 0) $ymin = 0;
$xmax = $x+$max_length;
if($xmax > $dimImage[0] - 1) $xmax = $dimImage[0] - 1;
$ymax = $y+$max_length;
if($ymax > $dimImage[1] - 1) $ymax = $dimImage[1] - 1;
$x2 = rand($xmin,$xmax);
$y2 = rand($ymin,$ymax);
} imageline($myImage,$x,$y,$x2,$y2,$color);
$x = $x2;
$y = $y2;
} } function invertnoise($myImage,$dimImage,$strength) { $indexBlack = imagecolorexact($myImage,0,0,0);
if($indexBlack == -1) $indexBlack = imagecolorclosest($myImage,0,0,0);
$indexWhite = imagecolorexact($myImage,255,255,255);
if($indexWhite == -1) $indexWhite = imagecolorclosest($myImage,255,255,255);
$currColor = imagecolorat($myImage,0,0);
for($i = 0 ;
$i < $dimImage[0] ;
$i++) { for($j = 0 ;
$j < $dimImage[1] ;
$j++) { if(rand(1,100) >= $strength) { } else { $currColor = imagecolorat($myImage,$i,$j);
if($currColor == $indexBlack) imagesetpixel($myImage,$i,$j,$indexWhite);
if($currColor == $indexWhite) imagesetpixel($myImage,$i,$j,$indexBlack);
} } } }
function copyAndPasteWithNoise($myImageSrc,$myImageDest,$dimImage,$strength) {
$maxNoise = $dimImage[0]*$dimImage[1];
$noise = intval(rand(0.1*$maxNoise,$maxNoise));
for($i = 0 ;
$i < $noise ;
$i++) { $width = rand(1,$strength);
$height = rand(1,$strength);
$srcX = rand(0,$dimImage[0]-$strength);
$srcY = rand(0,$dimImage[1]-$strength);
$currColor = imagecolorat($myImageSrc,$srcX,$srcY);
if(isCloseColor($myImageSrc,$currColor,255,255,255,2)) continue;
$destX = rand($srcX - $strength,$srcX + $strength);
$destY = rand($srcY - $strength,$srcY + $strength);
$xplusw = $srcX + $width;
if($xplusw >= $dimImage[0]) $width -= $xplusw - $dimImage[0];
$yplush = $srcY + $height;
if($yplush >= $dimImage[1]) $height -= $yplush - $dimImage[1];
if($destX < 0) $destX = 0;
if($destY < 0) $destY = 0;
$dxplusw = $destX + $width;
if($dxplusw >= $dimImage[0]) $destX -= $dxplusw - $dimImage[0];
$dyplush = $destY + $height;
if($dyplush >= $dimImage[1]) $destY -= $dyplush - $dimImage[1];
imagecopy($myImageDest,$myImageSrc,$destX,$destY,$srcX,$srcY,$width,$height);
} } function copyAndPasteNormal($myImageSrc,$myImageDest,$dimImage,$strength) {
$maxNoise = rand(intval($strength/2),intval($strength*5));
if($maxNoise == 0) $maxNoise = 1;
for($i = 0 ;
$i < $maxNoise ;
$i++) { $width = rand(5,intval($dimImage[0]/5));
$height = rand(5,intval($dimImage[1]/5));
$srcX = rand(0,$dimImage[0]-5);
$srcY = rand(0,$dimImage[1]-5);
$destWidth = $width;
$destHeight = $height;
$ratioX = $destWidth/$width;
$ratioY = $destHeight/$height;
$destX = rand($srcX - intval(5*$ratioX),$srcX + intval(5*$ratioX));
$destY = rand($srcY - intval(5*$ratioY),$srcY + intval(5*$ratioY));
$xplusw = $srcX + $width;
if($xplusw >= $dimImage[0]) $width -= $xplusw - $dimImage[0];
$yplush = $srcY + $height;
if($yplush >= $dimImage[1]) $height -= $yplush - $dimImage[1];
if($destX < 0) $destX = 0;
if($destY < 0) $destY = 0;
$dxplusw = $destX + $destWidth;
if($dxplusw >= $dimImage[0]) $destX -= $dxplusw - $dimImage[0];
$dyplush = $destY + $destHeight;
if($dyplush >= $dimImage[1]) $destY -= $dyplush - $dimImage[1];
imagecopy($myImageDest,$myImageSrc,$destX,$destY,$srcX,$srcY,$width,$height);
} } function copyAndPasteDeform($myImageSrc,$myImageDest,$dimImage,$strength) {
$maxNoise = rand(intval($strength/2),intval($strength*5));
if($maxNoise == 0) $maxNoise = 1;
for($i = 0 ;
$i < $maxNoise ;
$i++) { $width = rand(5,intval($dimImage[0]/5));
$height = rand(5,intval($dimImage[1]/5));
$srcX = rand(0,$dimImage[0]-5);
$srcY = rand(0,$dimImage[1]-5);
$destWidth = rand($width,intval(2.5*$width));
$destHeight = rand($height,intval(2.5*$height));
$ratioX = $destWidth/$width;
$ratioY = $destHeight/$height;
$destX = rand($srcX - intval(5*$ratioX),$srcX + intval(5*$ratioX));
$destY = rand($srcY - intval(5*$ratioY),$srcY + intval(5*$ratioY));
$xplusw = $srcX + $width;
if($xplusw >= $dimImage[0]) $width -= $xplusw - $dimImage[0];
$yplush = $srcY + $height;
if($yplush >= $dimImage[1]) $height -= $yplush - $dimImage[1];
if($destX < 0) $destX = 0;
if($destY < 0) $destY = 0;
$dxplusw = $destX + $destWidth;
if($dxplusw >= $dimImage[0]) $destX -= $dxplusw - $dimImage[0];
$dyplush = $destY + $destHeight;
if($dyplush >= $dimImage[1]) $destY -= $dyplush - $dimImage[1];
imagecopyresized($myImageDest,$myImageSrc,$destX,$destY,$srcX,$srcY,$destWidth,$destHeight,$width,$height);
} } function check_extension($file,$extensions) { $extension = strrchr($file, '.');
return in_array($extension, $extensions);
}
sub spectromie { my $ligne;
my $compteur = 0;
my $ligne_poeme = 0;
my $poeme = undef;
while(<fREC>) {
chomp;
$ligne = $_;
$ligne_poeme++;
my @Ligne = split(/\s+/,$ligne);
$poeme = $1;
$ligne_poeme = 0;
$compteur++;
print fSPEC "\tPoeme " . $compteur . " : " . $poeme . "\n";
next;
}
my $nbMotsLigne = scalar(@Ligne);
if($nbMotsLigne == 0) { print fSPEC "\n";
next;
}
foreach my $mot (@Ligne) {
if(exists($Symboles{$mot})) { next;
} if(length($mot) == 1 && !exists($Symboles{$mot}) && !exists($Voyelles{$mot}) && !exists($Consonnes{$mot})) { next;
}
$mot = &nettoieMot($mot);
push(@{$SampledRecueil{$poeme}{$ligne_poeme}{"mots"}},$mot);
push(@{$SampledRecueil{$poeme}{$ligne_poeme}{"poetivites"}},$Recueil{$poeme}{"Mots"}{$mot});
print fSPEC $Recueil{$poeme}{"Mots"}{$mot} . "\t";
}
print fSPEC "\n";
}
}
use strict;
print "\n\n\n\n";
open(fREAD,$ARGV[0]) || die;
while(<fREAD>) { my $ligne = $_;
my @Ligne = split(/[,|.|;
]/,$ligne);
foreach my $mot (@Ligne) { $mot =~ s/^ //;
print $mot . "\n";
if($ligne =~ m/$mot\s*,/) { sleep 1;
} else { sleep 2;
}
}
if(scalar(@Ligne) == 0) { print "\n";
}
print "\n";
} close fREAD;
print "\n\n\n\n";
sub retournementPoetivites { my $poeme = $_[0];
foreach my $mot (keys(%{$Recueil{$poeme}{"Mots"}})) { my $poetivite = 0;
my $nbpoetivites = scalar(@{$Recueil{$poeme}{"Mots"}{$mot}});
while( scalar(@{$Recueil{$poeme}{"Mots"}{$mot}}) > 0) { $poetivite += shift(@{$Recueil{$poeme}{"Mots"}{$mot}});
} $poetivite = int($poetivite / $nbpoetivites);
$Recueil{$poeme}{"Mots"}{$mot} = $poetivite;
push(@{$Poetivites{$poeme}{$poetivite}},$mot);
push(@{$Poetivites{"recueil"}{$poetivite}},$mot);
} } sub nettoieMot { my $mot = $_[0];
while($mot =~ m/(\.|,)$/) {chop $mot;
}
return $mot;
}
sub premierPassage { my $ligne;
my $compteur = 0;
my $poeme = undef;
my $nbMots;
my $lengthCumul;
while(<fREC>) {
chomp;
$ligne = $_;
my @Ligne = split(/\s+/,$ligne);
if($poeme) { $Recueil{$poeme}{"longueur_mot_moyenne"} = $lengthCumul / $nbMots;
}
$poeme = $1;
$compteur++;
$Recueil{$poeme}{"nombre_lignes"} = 0;
$nbMots = 0;
$lengthCumul = 0;
next;
}
my $nbMotsLigne = scalar(@Ligne);
if($nbMotsLigne == 0) { next;
} else { $nbMots += $nbMotsLigne;
}
$Recueil{$poeme}{"nombre_lignes"}++;
foreach my $mot (@Ligne) {
if(exists($Symboles{$mot})) { $nbMotsLigne--;
next;
} if(length($mot) == 1 && !exists($Symboles{$mot}) && !exists($Voyelles{$mot}) && !exists($Consonnes{$mot})) { $nbMotsLigne--;
next;
}
$mot = &nettoieMot($mot);
if(!exists($Mots{$mot})) { $Mots{$mot} = 1;
} else { $Mots{$mot}++;
}
$lengthCumul += length($mot);
}
} $Recueil{$poeme}{"longueur_mot_moyenne"} = $lengthCumul / $nbMots;
close fREC;
my $freqMax = 0;
my $motMax;
while((my $mot,my $freq) = each(%Mots)) { if($freq > $freqMax) { $motMax = $mot;
$freqMax = $freq;
} }
}