Cv
view release on metacpan or search on metacpan
lib/Cv/JA.pod view on Meta::CPAN
C<Cv> ã® C<new()> ã§ãã§ãã¾ãã
=item Set()
=item m_set()
$mat->Set($index, $value);
$index ã¯é
åã®ãªãã¡ã¬ã³ã¹ã§ãããå
·ä½çã«æ¬¡ã®ã¨ããæ¸ããã¨ãã§ãã¾ãã
$mat->Set([], $value); # ãããªã¯ã¹ $mat å
¨ä½ã« $value ã代å
¥ãã
$mat->Set([$i], $value); # ãããªã¯ã¹ $mat ã® $i è¡ã«ã
$mat->Set([$i, $j], $value); # ãããªã¯ã¹ $mat ã® $i è¡ $j åã«ã
ãã®ããã« C<m_set()> 㯠C<Set()> ãæ¡å¼µããC<Set()> ã è¦ç´ ã 1ã¤ãã¤
代å
¥ãã¦ããã¨ããã§ãè¦ç´ ãã²ã¨ã¾ã¨ãã«ä»£å
¥ãããã¨ãå¯è½ã«ãã¾ãã
ããã¯ãC<$index> ã§æå®ããããããªã¯ã¹ã®è¦ç´ ã®æ°ã¨ C<$value> ã§æå®ã
ããè¦ç´ ã®å¤ã®æ°ã®ãã©ã³ã¹ãã¨ããããã«ãC<$index> ãè£ãã C<$value>
ãã°ãããããã¦ããããªã¯ã¹ã®è¦ç´ ã«å¤ã 1ã¤ãã¤ä»£å
¥ããã¨ãããã®ã§ãã
ã¤ã³ãã¯ã¹ C<$index> ã C<$mat> ã®è¦ç´ ãç¹å®ããããã«ååã§ãªãã¨ãã¯ã
è¶³ããªãã¤ã³ãã¯ã¹ãè£ãããã«ãC<$value> ãå¤ã®ãªã¹ããªã C<$value> ã
ã°ãã㦠1ã¤ã㤠C<m_set()> ã§å帰çã«å¦çãã¾ããã¤ã¾ãã
$mat->m_set([@$index, $_], $value->[$_]) for 0 .. $#{$value};
ããã§ãªã (C<$value> ãã°ãããªã) ã¨ãã¯ã次ã®ã¨ããåã«ã¤ã³ãã¯ã¹ã«
0 ãè£ãã¾ããæ£ç¢ºã«ã¯ãNx1 ã®ãããªã¯ã¹ã® x1 ã®ã¤ã³ãã¯ã¹ã«ç¸å½ããé¨
åã 0 ã§è£ãã®ãããã¨æãã¾ãããæ¬¡ã«ç¤ºãææãã§ãååã§ãããã
$mat->m_set([@$index, 0], $value);
=item ToArray()
my @array = $arr->ToArray(); # (1)
my @array = $arr->ToArray($slice); # (2)
ã·ã¼ã±ã³ã¹ã¾ãã¯ãããªã¯ã¹ (1xN, Nx1) ã Perl ã®ç¹ã®é
åã«å¤æãã¾ãã
ã·ã¼ã±ã³ã¹ã夿ãã cvCvtSeqToArray() ããããªã¯ã¹ã夿ã§ããããã«æ¡
å¼µãããã®ã§ããå¾ã£ã¦ãç¯å²ãä¸ãã $slice ãæå®ãããã¨ãã§ãã¾ãã
ããã¯ãcvSlice() ã§ä½ãããåã«ã¯ãã $start ã¨çµã $end ã対ã«ããé
åã®ãªãã¡ã¬ã³ã¹ [$start, $end] ã§è¡¨ãããã¨ãã§ãã¾ããçç¥ããã¨ãã¯
$arr ã®ãã¹ã¦ã®è¦ç´ ã夿ãã¾ãã
=back
=head1 Cv::Seq
OpenCV ã®ã·ã¼ã±ã³ã¹ã¯ãç¹ãç©å½¢ãåãªã©æ§ã
ãªãã¼ã¿ãæ ¼ç´ãã¾ããæ ¼ç´ã
ãããã¼ã¿ãåãªãã§æ±ãã¹ã¼ãã¯ã©ã¹ L<Cv::Seq> ã¨ããã¼ã¿ã«åãããå¤
æãè¡ãæ´¾çã¯ã©ã¹ C<Cv::Seq::Point>, C<Cv::Seq::Rect>, ... ã«åãããã¼
ã¿ã«åãã㦠blessãã¦ä½¿ãã¾ããCè¨èªã®ãã£ã¹ãã®ãããªãã®ã§ãã
facedetect ã®ä¸é¨ã示ãã¾ããHaarDetectObjects() ã¯ãæ¤åºããé¡ãè¤æ°ã®
CvRect åã®ãã¼ã¿ã®ãªã¹ãã«ãã¦è¿ãã¾ããæ¬¡ã®ä¾ã¯ãã·ã¼ã±ã³ã¹ã
C<Cv::Seq::Rect> ã§ bless ãã¦ãé¡ã 1ã¤ãã¤åãåºãã¾ãã
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);
...
}
=head2 ã¡ã½ãã
=over
=item Cv->CreateSeq()
=item CreateSeq($seqFlags, $headerSize, $elemSize, $stor)
=item Cv::Seq->MakeSeqHeaderForArray($seqFlags, $headerSize, $elemSize, $stor)
=item Cv::Seq->new($seqFlags, $headerSize, $elemSize, $stor)
=item $seq->Push(@elem)
=item $seq->Pop()
=item $seq->Unshift(@elem)
=item $seq->Shift()
=item $seq->Splice()
# splice($array, $offset, $length, @list)
# splice($array, $offset, $length)
# splice($array, $offset)
=back
=head2 ã¡ã¢ãªã®è§£æ¾
åçãªã¡ã¢ãªã¯ã主ã«ã·ã¼ã±ã³ã¹ãç½®ãé åã¨ãã¦ä½¿ãã¾ããCv ã®ä¸ã¯ããã
å¿
è¦ãªå¼åºãã«ããã¦ä¸ããããªãã¨ããå
é¨ã§ç¢ºä¿ãããã¨ãããã¾ãã確
ä¿ããé å㯠$Cv::STORAGE ã«ç½®ãã¾ãããåçãªã¡ã¢ãªã¯ãä½¿ãæ¹ã«ãã£ã¦
ã¯ããã®æé·ãå¶éããå¿
è¦ãããã¾ããOpenCV 㯠cvClearMemStorage() ã
å¼ãã§ãªã»ããã§ããããã«ãã¦ãã¾ãããPerl ã§ã¯ã次ã®ã¨ãã local ã
使ãã¨ç°¡åã§ãã
{
local $Cv::STORAGE = $Cv::STORAGE;
my $seq = Cv::Seq::Point->new();
...
}
=head1 Cv::Histogram
L<Cv::Histogram> ã¯ãã¹ãã°ã©ã ãæ±ãã¾ããCv::Histogram ã¯ãCv ã®ä¸é¨
ãåãé¢ãããã®ãªã®ã§ãL</Cv::More>, L</Cv::Seq> ã¨åæ§ã«ä½¿ããªããã¨ã
æç¤ºããªãéãåãè¾¼ã¿ã¾ãã
use Cv; # Cv::Histogram ã使ã
use Cv -nohist; # Cv::Histogram ã使ããªã
ãªãã¸ã§ã¯ãã®ä½æã¯ cvCreateHist ã使ãã¾ããããã¤ãã®å¼ã³æ¹ãããã¾ããã
( run in 1.504 second using v1.01-cache-2.11-cpan-5837b0d9d2c )