added sample on color generation and updated sample on lsvm
This commit is contained in:
parent
408d6b84fa
commit
e6009c1614
35
samples/cpp/gencolors.cpp
Normal file
35
samples/cpp/gencolors.cpp
Normal file
@ -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;
|
||||||
|
}
|
@ -53,7 +53,7 @@ void detectAndDrawObjects( Mat& image, LatentSvmDetector& detector, const vector
|
|||||||
for( size_t i = 0; i < detections.size(); i++ )
|
for( size_t i = 0; i < detections.size(); i++ )
|
||||||
{
|
{
|
||||||
const LatentSvmDetector::ObjectDetection& od = detections[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
|
// put text over the all rectangles
|
||||||
for( size_t i = 0; i < detections.size(); i++ )
|
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() );
|
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[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
help();
|
help();
|
||||||
@ -150,8 +144,8 @@ int main(int argc, char* argv[])
|
|||||||
|
|
||||||
cout << "overlapThreshold = " << overlapThreshold << endl;
|
cout << "overlapThreshold = " << overlapThreshold << endl;
|
||||||
|
|
||||||
vector<Scalar> colors( detector.getClassNames().size() );
|
vector<Scalar> colors;
|
||||||
fillRngColors( colors );
|
generateColors( colors, detector.getClassNames().size() );
|
||||||
|
|
||||||
for( size_t i = 0; i < images_filenames.size(); i++ )
|
for( size_t i = 0; i < images_filenames.size(); i++ )
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user