diff --git a/samples/cpp/gencolors.cpp b/samples/cpp/gencolors.cpp new file mode 100644 index 0000000000..b7cad8b2c7 --- /dev/null +++ b/samples/cpp/gencolors.cpp @@ -0,0 +1,35 @@ +#include "opencv2/imgproc/imgproc.hpp" +#include "opencv2/contrib/contrib.hpp" +#include "opencv2/highgui/highgui.hpp" + +#include +#include + +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 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; +} diff --git a/samples/cpp/latentsvm_multidetect.cpp b/samples/cpp/latentsvm_multidetect.cpp index f26992f371..9f9c330035 100644 --- a/samples/cpp/latentsvm_multidetect.cpp +++ b/samples/cpp/latentsvm_multidetect.cpp @@ -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& filenames, bool sort( filenames.begin(), filenames.end() ); } -void fillRngColors( vector& 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 colors( detector.getClassNames().size() ); - fillRngColors( colors ); + vector colors; + generateColors( colors, detector.getClassNames().size() ); for( size_t i = 0; i < images_filenames.size(); i++ ) {