Image convolution: Difference between revisions

Content added Content deleted
m (→‎{{header|Perl}}: change test image)
(→‎{{header|Perl 6}}: clone of Perl 5, for now)
Line 1,579: Line 1,579:


=={{header|Perl 6}}==
=={{header|Perl 6}}==
<lang perl6>#!/usr/bin/env 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}}==