Skip to content

Commit 86e0b2f

Browse files
committed
add sample of sp module
1 parent f8e2748 commit 86e0b2f

File tree

3 files changed

+72
-5
lines changed

3 files changed

+72
-5
lines changed

modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ class CV_EXPORTS_W DiscriminantSaliency : public MotionSaliency
327327
Mat MU;
328328
double VAR;
329329
};
330-
DiscriminantSaliency();
330+
// DiscriminantSaliency();
331331
DiscriminantSaliency(unsigned = 1, Size = Size(127, 127), unsigned = 10, unsigned = 8, unsigned = 96, unsigned = 400, unsigned = 11);
332332
virtual ~DiscriminantSaliency();
333333
CV_WRAP static Ptr<DeepGaze1> create()
@@ -342,7 +342,7 @@ class CV_EXPORTS_W DiscriminantSaliency : public MotionSaliency
342342
}
343343
void dynamicTextureEstimator( const Mat, DT& );
344344
void patchGenerator( const std::vector<Mat>& img_sq, unsigned index, unsigned r, unsigned c, Mat& center, Mat& surround, Mat& all );
345-
std::vector<Mat> saliencyMapGenerator( const std::vector<Mat>& );
345+
std::vector<Mat> saliencyMapGenerator( std::vector<Mat> );
346346
void saliencyMapVisualize( InputArray _saliencyMap );
347347
protected:
348348
bool computeSaliencyImpl( InputArray image, OutputArray saliencyMap );
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// This file is part of OpenCV project.
2+
// It is subject to the license terms in the LICENSE file found in the top-level directory
3+
// of this distribution and at http://opencv.org/license.html.
4+
5+
6+
#include <opencv2/core.hpp>
7+
#include <opencv2/imgproc.hpp>
8+
#include <opencv2/highgui.hpp>
9+
#include <opencv2/saliency.hpp>
10+
#include <vector>
11+
#include <string>
12+
#include <iostream>
13+
#include <fstream>
14+
15+
using namespace std;
16+
using namespace cv;
17+
using namespace saliency;
18+
19+
20+
int main(int argc, char* argv[])
21+
{
22+
const char *keys =
23+
"{ help h usage ? | | show this message }"
24+
"{ start_frame |0 | start frame index }"
25+
"{ length |12 | # of frames video contain }"
26+
"{ default |1 | use default deep net(AlexNet) and default weights }"
27+
"{ video_name |skiing| the name of video in UCSD background subtraction }"
28+
"{ img_folder_path|JPEGS| path to folder with frames }"
29+
"{ res_level | 3 | resolution level of output saliency map. Suggested Range [0, 4]. The higher the level is, the fast the processing is, the lower the resolution is }";
30+
31+
CommandLineParser parser(argc, argv, keys);
32+
if (parser.has("help"))
33+
{
34+
parser.printMessage();
35+
return 0;
36+
}
37+
vector<Mat> img_sq;
38+
DiscriminantSaliency t;
39+
if ( parser.get<bool>( "default" ) )
40+
{
41+
t = DiscriminantSaliency();
42+
}
43+
else
44+
{
45+
t = DiscriminantSaliency(parser.get<int>( "res_level" ));
46+
}
47+
for ( unsigned i = 1; i < parser.get<unsigned>( "length" ); i++ )
48+
{
49+
char index[256] = {0};
50+
sprintf(index, "%d", i + parser.get<int>( "start_frame" ));
51+
Mat temp = imread(parser.get<string>("img_folder_path") + "/" + parser.get<string>("video_name") + "/frame_" + index + ".jpg", 0);
52+
//Mat temp = imread(string("JPEGS/traffic/frame_") + index + ".jpg", 0);
53+
//resize(temp, temp, Size(127, 127));
54+
img_sq.push_back(temp);
55+
}
56+
vector<Mat> saliency_sq = t.saliencyMapGenerator(img_sq);
57+
for ( unsigned i = 0; i < saliency_sq.size(); i++ )
58+
{
59+
resize(saliency_sq[i], saliency_sq[i], Size(1024, 768));
60+
t.saliencyMapVisualize(saliency_sq[i]);
61+
}
62+
return 0;
63+
} //main

modules/saliency/src/DiscriminantSaliency.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ namespace cv
2727
{
2828
namespace saliency
2929
{
30-
DiscriminantSaliency::DiscriminantSaliency()
30+
/*DiscriminantSaliency::DiscriminantSaliency()
3131
{
3232
imgProcessingSize = Size(127, 127);
3333
hiddenSpaceDimension = 10;
@@ -37,7 +37,7 @@ DiscriminantSaliency::DiscriminantSaliency()
3737
temporalSize = 11;
3838
stride = 1;
3939
CV_Assert( hiddenSpaceDimension <= temporalSize && temporalSize <= (unsigned)imgProcessingSize.width * imgProcessingSize.height );
40-
}
40+
}*/
4141

4242
DiscriminantSaliency::DiscriminantSaliency(unsigned _stride, Size _imgProcessingSize, unsigned _hidden, unsigned _center, unsigned _window, unsigned _patch, unsigned _temporal)
4343
{
@@ -63,9 +63,13 @@ bool DiscriminantSaliency::computeSaliencyImpl( InputArray image, OutputArray sa
6363
return true;
6464
}
6565

66-
vector<Mat> DiscriminantSaliency::saliencyMapGenerator( const std::vector<Mat>& img_sq )
66+
vector<Mat> DiscriminantSaliency::saliencyMapGenerator( std::vector<Mat> img_sq )
6767
{
6868
CV_Assert( img_sq.size() >= temporalSize );
69+
for ( unsigned i = 0; i < img_sq.size(); i++ )
70+
{
71+
resize(img_sq[i], img_sq[i], imgProcessingSize);
72+
}
6973
vector<Mat> saliency_sq;
7074
for ( unsigned i = temporalSize - 1; i < img_sq.size(); i++ )
7175
{

0 commit comments

Comments
 (0)