blob: 7daaed19fc80f8c70585cf0799d8630b99ad9ca5 [file] [log] [blame]
jerrymf1579332013-02-07 01:56:28 +00001/*----------------------------------------------------------------------------*/
2/* Copyright (c) FIRST 2008. All Rights Reserved. */
3/* Open Source Software - may be modified and shared by FRC teams. The code */
4/* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib. */
5/*----------------------------------------------------------------------------*/
6
7#include "MonoImage.h"
8#include "nivision.h"
9
10MonoImage::MonoImage() : ImageBase(IMAQ_IMAGE_U8)
11{
12}
13
14MonoImage::~MonoImage()
15{
16}
17
18/**
19 * Look for ellipses in an image.
20 * Given some input parameters, look for any number of ellipses in an image.
21 * @param ellipseDescriptor Ellipse descriptor
22 * @param curveOptions Curve options
23 * @param shapeDetectionOptions Shape detection options
24 * @param roi Region of Interest
25 * @returns a vector of EllipseMatch structures (0 length vector on no match)
26 */
27vector<EllipseMatch> * MonoImage::DetectEllipses(
28 EllipseDescriptor *ellipseDescriptor, CurveOptions *curveOptions,
29 ShapeDetectionOptions *shapeDetectionOptions, ROI *roi)
30{
31 int numberOfMatches;
32 EllipseMatch *e = imaqDetectEllipses(m_imaqImage, ellipseDescriptor,
33 curveOptions, shapeDetectionOptions, roi, &numberOfMatches);
34 vector<EllipseMatch> *ellipses = new vector<EllipseMatch>;
35 if (e == NULL)
36 {
37 return ellipses;
38 }
39 for (int i = 0; i < numberOfMatches; i++)
40 {
41 ellipses->push_back(e[i]);
42 }
43 imaqDispose(e);
44 return ellipses;
45}
46
47vector<EllipseMatch> * MonoImage::DetectEllipses(
48 EllipseDescriptor *ellipseDescriptor)
49{
50 vector<EllipseMatch> *ellipses = DetectEllipses(ellipseDescriptor, NULL,
51 NULL, NULL);
52 return ellipses;
53}