added sample on color generation and updated sample on lsvm
authorMaria Dimashova <no@email>
Thu, 6 Oct 2011 09:43:43 +0000 (09:43 +0000)
committerMaria Dimashova <no@email>
Thu, 6 Oct 2011 09:43:43 +0000 (09:43 +0000)
samples/cpp/gencolors.cpp [new file with mode: 0644]
samples/cpp/latentsvm_multidetect.cpp

diff --git a/samples/cpp/gencolors.cpp b/samples/cpp/gencolors.cpp
new file mode 100644 (file)
index 0000000..b7cad8b
--- /dev/null
@@ -0,0 +1,35 @@
+#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;
+}
index f26992f..9f9c330 100644 (file)
@@ -53,7 +53,7 @@ void detectAndDrawObjects( Mat& image, LatentSvmDetector& detector, const vector
     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++ )
@@ -102,12 +102,6 @@ void readDirectory( const string& directoryName, vector<string>& filenames, bool
     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();
@@ -150,8 +144,8 @@ int main(int argc, char* argv[])
 
     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++ )
     {