Image convolution: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) m (→{{header|Perl}}: change test image) |
SqrtNegInf (talk | contribs) (→{{header|Perl 6}}: clone of Perl 5, for now) |
||
Line 1,579: | Line 1,579: | ||
=={{header|Perl 6}}== |
=={{header|Perl 6}}== |
||
<lang perl6> |
<lang perl6>use PDL:from<Perl5>; |
||
use PDL::Image2D:from<Perl5>; |
|||
my $kernel = pdl [[-2, -1, 0],[-1, 1, 1], [0, 1, 2]]; # emboss |
|||
# Reference: |
|||
# https://github.com/azawawi/perl6-magickwand |
|||
# http://www.imagemagick.org/Usage/convolve/ |
|||
my $image = rpic 'frog.png'; |
|||
use v6; |
|||
my $smoothed = conv2d $image, $kernel, {Boundary => 'Truncate'}; |
|||
wpic $smoothed, 'frog_convolution.png';</lang> |
|||
use MagickWand; |
|||
Compare offsite images: [https://github.com/SqrtNegInf/Rosettacode-Perl6-Smoke/blob/master/ref/frog.png frog.png] vs. |
|||
[https://github.com/SqrtNegInf/Rosettacode-Perl6-Smoke/blob/master/ref/frog_convolution.png frog_convolution.png] |
|||
# A new magic wand |
|||
my $original = MagickWand.new; |
|||
# Read an image |
|||
$original.read("./Lenna100.jpg") or die; |
|||
my $o = $original.clone; |
|||
# using coefficients from kernel "Sobel" |
|||
# http://www.imagemagick.org/Usage/convolve/#sobel |
|||
$o.convolve( [ 1, 0, -1, |
|||
2, 0, -2, |
|||
1, 0, -1] ); |
|||
$o.write("Lenna100-convoluted.jpg") or die; |
|||
# And cleanup on exit |
|||
LEAVE { |
|||
$original.cleanup if $original.defined; |
|||
$o.cleanup if $o.defined; |
|||
}</lang> |
|||
=={{header|Phix}}== |
=={{header|Phix}}== |