--- /dev/null
+#include "opencv2/imgproc/imgproc.hpp"
+#include "opencv2/contrib/contrib.hpp"
+#include "opencv2/highgui/highgui.hpp"
+
+#include <cstdio>
+#include <iostream>
+
+using namespace cv;
+using namespace std;
+
+int main(int argc, char** argv)
+{
+ if( argc != 2 )
+ {
+ cout << "Colors count should be passed." << endl;
+ return -1;
+ }
+
+ int colorsCount = atoi(argv[1]);
+ vector<Scalar> colors;
+ theRNG() = (uint64)time(0);
+ generateColors( colors, colorsCount );
+
+ int stripWidth = 20;
+ Mat strips(300, colorsCount*stripWidth, CV_8UC3);
+ for( int i = 0; i < colorsCount; i++ )
+ {
+ strips.colRange(i*stripWidth, (i+1)*stripWidth) = colors[i];
+ }
+
+ imshow( "strips", strips );
+ waitKey();
+
+ return 0;
+}
for( size_t i = 0; i < detections.size(); i++ )
{
const LatentSvmDetector::ObjectDetection& od = detections[i];
- rectangle( image, od.rect, colors[od.classID], 2 );
+ rectangle( image, od.rect, colors[od.classID], 3 );
}
// put text over the all rectangles
for( size_t i = 0; i < detections.size(); i++ )
sort( filenames.begin(), filenames.end() );
}
-void fillRngColors( vector<Scalar>& colors )
-{
- Mat m = Mat(colors).reshape(1,1);
- randu( m, 0, 255 );
-}
-
int main(int argc, char* argv[])
{
help();
cout << "overlapThreshold = " << overlapThreshold << endl;
- vector<Scalar> colors( detector.getClassNames().size() );
- fillRngColors( colors );
+ vector<Scalar> colors;
+ generateColors( colors, detector.getClassNames().size() );
for( size_t i = 0; i < images_filenames.size(); i++ )
{