docs
[mirrors/Programs.git] / perl / facedetect.pl
CommitLineData
38a87dc6
H
1#!/usr/bin/perl
2use strict;
3use warnings;
4
5use Imager;
6use Image::ObjectDetect;
7
8my $file = '2.jpg';
9#my $file = 'input.jpg';
10my $image = Imager->new->read(file => $file);
11
12my @cascades = (
13 #'/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml',
14 #'/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml',
15 '/usr/share/opencv/haarcascades/haarcascade_frontalface_alt2.xml', #less sensitive
16 #'/usr/share/opencv/haarcascades/haarcascade_frontalface_alt_tree.xml',
17 #'/usr/share/opencv/haarcascades/haarcascade_profileface.xml',
18
19 #'/usr/share/opencv/haarcascades/haarcascade_upperbody.xml',
20 #'/usr/share/opencv/haarcascades/haarcascade_lowerbody.xml',
21 #'/usr/share/opencv/haarcascades/haarcascade_fullbody.xml',
22
23 #'/usr/share/opencv/haarcascades/haarcascade_mcs_eyepair_small.xml',
24 #'/usr/share/opencv/haarcascades/haarcascade_mcs_eyepair_big.xml',
25);
26
27my @faces;
28foreach(@cascades) {
29 push (@faces, detect_objects($_, $file));
30}
31
32for my $face (@faces) {
33 my $file2 = 'paroubek.jpg';
34 my $image2 = Imager->new->read(file => $file2);
24d4c0d4 35 $image2 = $image2->scale(xpixels => $face->{width}, ypixels => $face->{height});
38a87dc6
H
36 $image->paste(left => $face->{x}, top => $face->{y}, src => $image2);
37}
38
39$image->write(file => 'output.jpg');
40
41print "Content-type: text/html\n\n";
42print "<head>\n";
43print "<TITLE>face detect</TITLE>\n";
44print "</HEAD>\n";
45print "<BODY>\n";
46print "<br>\n";
47print "<img src='input.jpg'>\n";
48print "<img src='face.jpg'>\n";
49print "<img src='output.jpg'>\n";
50print "</BODY>\n";
51print "</HTML>\n";
This page took 0.206613 seconds and 4 git commands to generate.