diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/Color_src/Robot.cpp b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/Color_src/Robot.cpp index 7818d65354..c32a8eadcc 100644 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/Color_src/Robot.cpp +++ b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/Color_src/Robot.cpp @@ -9,6 +9,8 @@ * To use a USB camera instead, see the IntermediateVision example for details * on using the USB camera. To use an Axis Camera, see the AxisCamera example for details on * using an Axis Camera. + * + * Sample images can be found here: http://wp.wpi.edu/wpilib/2015/01/16/sample-images-for-vision-projects/ */ class VisionColor2015Sample : public SampleRobot { @@ -69,7 +71,7 @@ public: void Autonomous() override { while (IsAutonomous() && IsEnabled()) { - //read file in from disk. For this example to run you need to copy image20.jpg from the SampleImages folder in this project to the + //read file in from disk. For this example to run you need to copy image20.jpg from the SampleImages folder to the //directory shown below using FTP or SFTP: http://wpilib.screenstepslive.com/s/4485/m/24166/l/282299-roborio-ftp imaqError = imaqReadFile(frame, "//home//lvuser//SampleImages//image20.jpg", NULL, NULL); @@ -115,9 +117,9 @@ public: imaqMeasureParticle(binaryFrame, particleIndex, 0, IMAQ_MT_BOUNDING_RECT_LEFT, &(par.BoundingRectLeft)); imaqMeasureParticle(binaryFrame, particleIndex, 0, IMAQ_MT_BOUNDING_RECT_BOTTOM, &(par.BoundingRectBottom)); imaqMeasureParticle(binaryFrame, particleIndex, 0, IMAQ_MT_BOUNDING_RECT_RIGHT, &(par.BoundingRectRight)); - particles.push_back(*par); + particles.push_back(par); } - sort(particles->begin(), particles->end(), CompareParticleSizes); + sort(particles.begin(), particles.end(), CompareParticleSizes); //This example only scores the largest particle. Extending to score all particles and choosing the desired one is left as an exercise //for the reader. Note that the long and short side scores expect a single tote and will not work for a stack of 2 or more totes. @@ -157,7 +159,7 @@ public: if(error < ERR_SUCCESS) { DriverStation::ReportError("Send To Dashboard error: " + std::to_string((long)imaqError) + "\n"); } else { - CameraServer::GetInstance()->SetImage(binaryFrame); + CameraServer::GetInstance()->SetImage(image); } } diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/Retro_src/Robot.cpp b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/Retro_src/Robot.cpp index a2e915a5ff..04310a35bf 100644 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/Retro_src/Robot.cpp +++ b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/Retro_src/Robot.cpp @@ -9,6 +9,8 @@ * To use a USB camera instead, see the IntermediateVision example for details * on using the USB camera. To use an Axis Camera, see the AxisCamera example for details on * using an Axis Camera. + * + * Sample images can be found here: http://wp.wpi.edu/wpilib/2015/01/16/sample-images-for-vision-projects/ */ class VisionRetro2015Sample : public SampleRobot { @@ -66,7 +68,7 @@ public: void Autonomous() override { while (IsAutonomous() && IsEnabled()) { - //read file in from disk. For this example to run you need to copy image.jpg from the SampleImages folder in this project to the + //read file in from disk. For this example to run you need to copy image.jpg from the SampleImages folder to the //directory shown below using FTP or SFTP: http://wpilib.screenstepslive.com/s/4485/m/24166/l/282299-roborio-ftp imaqError = imaqReadFile(frame, "//home//lvuser//SampleImages//image.jpg", NULL, NULL); diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/IMG_1800.png b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/IMG_1800.png deleted file mode 100644 index d80ed46e1e..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/IMG_1800.png and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image.jpg deleted file mode 100644 index a3e6f00cf2..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image10.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image10.jpg deleted file mode 100644 index a1ee41cbc9..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image10.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image11.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image11.jpg deleted file mode 100644 index 860269a55b..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image11.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image12.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image12.jpg deleted file mode 100644 index 148d3e5e18..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image12.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image13.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image13.jpg deleted file mode 100644 index f1588ed916..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image13.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image14.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image14.jpg deleted file mode 100644 index 0fc233c40d..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image14.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image15.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image15.jpg deleted file mode 100644 index 8cb8961c5d..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image15.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image16.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image16.jpg deleted file mode 100644 index d793ebbded..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image16.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image17.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image17.jpg deleted file mode 100644 index b5837d6d1c..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image17.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image18.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image18.jpg deleted file mode 100644 index 346e1343a7..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image18.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image19.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image19.jpg deleted file mode 100644 index 9908dd875e..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image19.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image2.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image2.jpg deleted file mode 100644 index 6747e9ef5a..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image2.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image20.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image20.jpg deleted file mode 100644 index 2ee1c5fdca..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image20.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image21.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image21.jpg deleted file mode 100644 index 0a8c238599..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image21.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image3.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image3.jpg deleted file mode 100644 index 713604e943..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image3.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image4.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image4.jpg deleted file mode 100644 index fc31585056..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image4.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image5.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image5.jpg deleted file mode 100644 index 37bfd87153..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image5.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image6.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image6.jpg deleted file mode 100644 index c727371440..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image6.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image7.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image7.jpg deleted file mode 100644 index 703f09b778..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image7.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image8.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image8.jpg deleted file mode 100644 index 3d8d836f31..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image8.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image9.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image9.jpg deleted file mode 100644 index 7a8524c561..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/2015Vision/SampleImages/image9.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/examples.xml b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/examples.xml index 2cea463cb6..ae93323e58 100644 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/examples.xml +++ b/eclipse-plugins/edu.wpi.first.wpilib.plugins.cpp/resources/templates/examples/examples.xml @@ -349,53 +349,10 @@ src - SampleImages - - - - - - - - - - - - - - - - - - - - - @@ -412,53 +369,10 @@ src - SampleImages - - - - - - - - - - - - - - - - - - - - - diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/Color_src/Robot.java b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/Color_src/Robot.java index df1f2c44a9..62a7f22b89 100644 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/Color_src/Robot.java +++ b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/Color_src/Robot.java @@ -20,12 +20,15 @@ import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; * To use a USB camera instead, see the SimpelVision and AdvancedVision examples for details * on using the USB camera. To use an Axis Camera, see the AxisCamera example for details on * using an Axis Camera. + * + * Sample omages can be found here: http://wp.wpi.edu/wpilib/2015/01/16/sample-images-for-vision-projects/ */ public class Robot extends SampleRobot { //A structure to hold measurements of a particle public class ParticleReport implements Comparator, Comparable{ double PercentAreaToImageArea; double Area; + double ConvexHullArea; double BoundingRectLeft; double BoundingRectTop; double BoundingRectRight; @@ -44,8 +47,10 @@ public class Robot extends SampleRobot { //Structure to represent the scores for the various tests used for target identification public class Scores { - double Area; - double Aspect; + double Trapezoid; + double LongAspect; + double ShortAspect; + double AreaToConvexHullArea; }; //Images @@ -54,9 +59,9 @@ public class Robot extends SampleRobot { int imaqError; //Constants - NIVision.Range TOTE_HUE_RANGE = new NIVision.Range(101, 64); //Default hue range for yellow tote - NIVision.Range TOTE_SAT_RANGE = new NIVision.Range(88, 255); //Default saturation range for yellow tote - NIVision.Range TOTE_VAL_RANGE = new NIVision.Range(134, 255); //Default value range for yellow tote + NIVision.Range TOTE_HUE_RANGE = new NIVision.Range(24, 49); //Default hue range for yellow tote + NIVision.Range TOTE_SAT_RANGE = new NIVision.Range(67, 255); //Default saturation range for yellow tote + NIVision.Range TOTE_VAL_RANGE = new NIVision.Range(49, 255); //Default value range for yellow tote double AREA_MINIMUM = 0.5; //Default Area minimum for particle as a percentage of total image area double LONG_RATIO = 2.22; //Tote long side = 26.9 / Tote height = 12.1 = 2.22 double SHORT_RATIO = 1.4; //Tote short side = 16.9 / Tote height = 12.1 = 1.4 @@ -85,7 +90,7 @@ public class Robot extends SampleRobot { public void autonomous() { while (isAutonomous() && isEnabled()) { - //read file in from disk. For this example to run you need to copy image20.jpg from the SampleImages folder in this project to the + //read file in from disk. For this example to run you need to copy image20.jpg from the SampleImages folder to the //directory shown below using FTP or SFTP: http://wpilib.screenstepslive.com/s/4485/m/24166/l/282299-roborio-ftp NIVision.imaqReadFile(frame, "/home/lvuser/SampleImages/image20.jpg"); @@ -125,6 +130,7 @@ public class Robot extends SampleRobot { ParticleReport par = new ParticleReport(); par.PercentAreaToImageArea = NIVision.imaqMeasureParticle(binaryFrame, particleIndex, 0, NIVision.MeasurementType.MT_AREA_BY_IMAGE_AREA); par.Area = NIVision.imaqMeasureParticle(binaryFrame, particleIndex, 0, NIVision.MeasurementType.MT_AREA); + par.ConvexHullArea = NIVision.imaqMeasureParticle(binaryFrame, particleIndex, 0, NIVision.MeasurementType.MT_CONVEX_HULL_AREA); par.BoundingRectTop = NIVision.imaqMeasureParticle(binaryFrame, particleIndex, 0, NIVision.MeasurementType.MT_BOUNDING_RECT_TOP); par.BoundingRectLeft = NIVision.imaqMeasureParticle(binaryFrame, particleIndex, 0, NIVision.MeasurementType.MT_BOUNDING_RECT_LEFT); par.BoundingRectBottom = NIVision.imaqMeasureParticle(binaryFrame, particleIndex, 0, NIVision.MeasurementType.MT_BOUNDING_RECT_BOTTOM); @@ -136,15 +142,20 @@ public class Robot extends SampleRobot { //This example only scores the largest particle. Extending to score all particles and choosing the desired one is left as an exercise //for the reader. Note that the long and short side scores expect a single tote and will not work for a stack of 2 or more totes. //Modification of the code to accommodate 2 or more stacked totes is left as an exercise for the reader. - scores.Aspect = AspectScore(particles.elementAt(0)); - SmartDashboard.putNumber("Aspect", scores.Aspect); - scores.Area = AreaScore(particles.elementAt(0)); - SmartDashboard.putNumber("Area", scores.Area); - boolean isTote = scores.Aspect > SCORE_MIN && scores.Area > SCORE_MIN; + scores.Trapezoid = TrapezoidScore(particles.elementAt(0)); + SmartDashboard.putNumber("Trapezoid", scores.Trapezoid); + scores.LongAspect = LongSideScore(particles.elementAt(0)); + SmartDashboard.putNumber("Long Aspect", scores.LongAspect); + scores.ShortAspect = ShortSideScore(particles.elementAt(0)); + SmartDashboard.putNumber("Short Aspect", scores.ShortAspect); + scores.AreaToConvexHullArea = ConvexHullAreaScore(particles.elementAt(0)); + SmartDashboard.putNumber("Convex Hull Area", scores.AreaToConvexHullArea); + boolean isTote = scores.Trapezoid > SCORE_MIN && (scores.LongAspect > SCORE_MIN || scores.ShortAspect > SCORE_MIN) && scores.AreaToConvexHullArea > SCORE_MIN; + boolean isLong = scores.LongAspect > scores.ShortAspect; //Send distance and tote status to dashboard. The bounding rect, particularly the horizontal center (left - right) may be useful for rotating/driving towards a tote SmartDashboard.putBoolean("IsTote", isTote); - SmartDashboard.putNumber("Distance", computeDistance(binaryFrame, particles.elementAt(0))); + SmartDashboard.putNumber("Distance", computeDistance(binaryFrame, particles.elementAt(0), isLong)); } else { SmartDashboard.putBoolean("IsTote", false); } @@ -175,19 +186,36 @@ public class Robot extends SampleRobot { return (Math.max(0, Math.min(100*(1-Math.abs(1-ratio)), 100))); } - double AreaScore(ParticleReport report) + /** + * Method to score convex hull area. This scores how "complete" the particle is. Particles with large holes will score worse than a filled in shape + */ + double ConvexHullAreaScore(ParticleReport report) { - double boundingArea = (report.BoundingRectBottom - report.BoundingRectTop) * (report.BoundingRectRight - report.BoundingRectLeft); - //Tape is 7" edge so 49" bounding rect. With 2" wide tape it covers 24" of the rect. - return ratioToScore((49/24)*report.Area/boundingArea); + return ratioToScore((report.Area/report.ConvexHullArea)*1.18); } /** - * Method to score if the aspect ratio of the particle appears to match the retro-reflective target. Target is 7"x7" so aspect should be 1 + * Method to score if the particle appears to be a trapezoid. Compares the convex hull (filled in) area to the area of the bounding box. + * The expectation is that the convex hull area is about 95.4% of the bounding box area for an ideal tote. */ - double AspectScore(ParticleReport report) + double TrapezoidScore(ParticleReport report) { - return ratioToScore(((report.BoundingRectRight-report.BoundingRectLeft)/(report.BoundingRectBottom-report.BoundingRectTop))); + return ratioToScore(report.ConvexHullArea/((report.BoundingRectRight-report.BoundingRectLeft)*(report.BoundingRectBottom-report.BoundingRectTop)*.954)); + } + + /** + * Method to score if the aspect ratio of the particle appears to match the long side of a tote. + */ + double LongSideScore(ParticleReport report) + { + return ratioToScore(((report.BoundingRectRight-report.BoundingRectLeft)/(report.BoundingRectBottom-report.BoundingRectTop))/LONG_RATIO); + } + + /** + * Method to score if the aspect ratio of the particle appears to match the short side of a tote. + */ + double ShortSideScore(ParticleReport report){ + return ratioToScore(((report.BoundingRectRight-report.BoundingRectLeft)/(report.BoundingRectBottom-report.BoundingRectTop))/SHORT_RATIO); } /** @@ -199,13 +227,13 @@ public class Robot extends SampleRobot { * @param isLong Boolean indicating if the target is believed to be the long side of a tote * @return The estimated distance to the target in feet. */ - double computeDistance (Image image, ParticleReport report) { + double computeDistance (Image image, ParticleReport report, boolean isLong) { double normalizedWidth, targetWidth; NIVision.GetImageSizeResult size; size = NIVision.imaqGetImageSize(image); normalizedWidth = 2*(report.BoundingRectRight - report.BoundingRectLeft)/size.width; - targetWidth = 7; + targetWidth = isLong ? 26.0 : 16.9; return targetWidth/(normalizedWidth*12*Math.tan(VIEW_ANGLE*Math.PI/(180*2))); } diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/Retro_src/Robot.java b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/Retro_src/Robot.java index 47d83727c3..93633892b2 100644 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/Retro_src/Robot.java +++ b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/Retro_src/Robot.java @@ -20,6 +20,8 @@ import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; * To use a USB camera instead, see the SimpelVision and AdvancedVision examples for details * on using the USB camera. To use an Axis Camera, see the AxisCamera example for details on * using an Axis Camera. + * + * Sample images can found here: http://wp.wpi.edu/wpilib/2015/01/16/sample-images-for-vision-projects/ */ public class Robot extends SampleRobot { //A structure to hold measurements of a particle @@ -85,7 +87,7 @@ public class Robot extends SampleRobot { public void autonomous() { while (isAutonomous() && isEnabled()) { - //read file in from disk. For this example to run you need to copy image.jpg from the SampleImages folder in this project to the + //read file in from disk. For this example to run you need to copy image.jpg from the SampleImages folder to the //directory shown below using FTP or SFTP: http://wpilib.screenstepslive.com/s/4485/m/24166/l/282299-roborio-ftp NIVision.imaqReadFile(frame, "/home/lvuser/SampleImages/image.jpg"); diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/IMG_1800.png b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/IMG_1800.png deleted file mode 100644 index d80ed46e1e..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/IMG_1800.png and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image.jpg deleted file mode 100644 index a3e6f00cf2..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image10.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image10.jpg deleted file mode 100644 index a1ee41cbc9..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image10.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image11.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image11.jpg deleted file mode 100644 index 860269a55b..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image11.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image12.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image12.jpg deleted file mode 100644 index 148d3e5e18..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image12.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image13.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image13.jpg deleted file mode 100644 index f1588ed916..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image13.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image14.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image14.jpg deleted file mode 100644 index 0fc233c40d..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image14.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image15.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image15.jpg deleted file mode 100644 index 8cb8961c5d..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image15.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image16.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image16.jpg deleted file mode 100644 index d793ebbded..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image16.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image17.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image17.jpg deleted file mode 100644 index b5837d6d1c..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image17.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image18.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image18.jpg deleted file mode 100644 index 346e1343a7..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image18.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image19.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image19.jpg deleted file mode 100644 index 9908dd875e..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image19.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image2.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image2.jpg deleted file mode 100644 index 6747e9ef5a..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image2.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image20.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image20.jpg deleted file mode 100644 index 2ee1c5fdca..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image20.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image21.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image21.jpg deleted file mode 100644 index 0a8c238599..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image21.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image3.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image3.jpg deleted file mode 100644 index 713604e943..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image3.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image4.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image4.jpg deleted file mode 100644 index fc31585056..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image4.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image5.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image5.jpg deleted file mode 100644 index 37bfd87153..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image5.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image6.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image6.jpg deleted file mode 100644 index c727371440..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image6.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image7.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image7.jpg deleted file mode 100644 index 703f09b778..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image7.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image8.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image8.jpg deleted file mode 100644 index 3d8d836f31..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image8.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image9.jpg b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image9.jpg deleted file mode 100644 index 7a8524c561..0000000000 Binary files a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/2015Vision/SampleImages/image9.jpg and /dev/null differ diff --git a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/examples.xml b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/examples.xml index a06e070bb9..261b9495ea 100755 --- a/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/examples.xml +++ b/eclipse-plugins/edu.wpi.first.wpilib.plugins.java/resources/templates/examples/examples.xml @@ -339,53 +339,10 @@ src/$package-dir - SampleImages - - - - - - - - - - - - - - - - - - - - - @@ -402,53 +359,10 @@ src/$package-dir - SampleImages - - - - - - - - - - - - - - - - - - - - -