Cv::Seq - OpenCV のシーケンスを取り扱う。
OpenCV のシーケンスは、点、矩形、円など様々なデータを格納します。格納さ れたデータを型なしで扱うスーパクラス Cv::Seq と、データに 合わせた変換を行う派生クラス Cv::Seq::Point, Cv::Seq::Rect, ... に分け、データに合わせて bless して使います。C言語のキャストのようなものです。
facedetect の一部を示します。HaarDetectObjects() は、検出した顔を複数の CvRect 型のデータのリストにして返します。次の例は、シーケンスを Cv::Seq::Rect で bless して、顔を 1つずつ取り出します。
Cv::Seq::Rect
my $faces = bless $image->HaarDetectObjects( $cascade, $storage, 1.1, 2, CV_HAAR_SCALE_IMAGE, cvSize(30, 30)), "Cv::Seq::Rect"; while (my @rect = $faces->shift) { my ($x, $y, $w, $h) = @rect; ... }
同じ部分の C言語のコードを並べておきます。比べやすくするために、余分な ものは省きました。
CvSeq* faces = cvHaarDetectObjects( image, cascade, storage, 1.1, 2, CV_HAAR_SCALE_IMAGE, cvSize(30, 30)); for (;;) { CvRect rect; cvSeqPopFront(faces, &rect); ... }
# splice($array, $offset, $length, @list) # splice($array, $offset, $length) # splice($array, $offset)
Cv::Nihongo, Cv::More
Yuta MASUDA <yuta.masuda@newdaysys.co.jp>
Copyright (c) 2012 by Yuta MASUDA.
All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Cv, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Cv
CPAN shell
perl -MCPAN -e shell install Cv
For more information on module installation, please visit the detailed CPAN module installation guide.