@@ -48,35 +48,35 @@ DiscriminantSaliency::DiscriminantSaliency(unsigned _stride, Size _imgProcessing
48
48
patchSize = _patch;
49
49
temporalSize = _temporal;
50
50
stride = _stride;
51
- CV_Assert ( hiddenSpaceDimension <= temporalSize && temporalSize <= (unsigned )imgProcessingSize.width * imgProcessingSize.height );
51
+ CV_Assert ( hiddenSpaceDimension <= temporalSize && temporalSize <= (unsigned )imgProcessingSize.width * imgProcessingSize.height && stride <= (centerSize - 1 ) / 2 );
52
52
}
53
53
54
54
DiscriminantSaliency::~DiscriminantSaliency (){}
55
55
56
56
bool DiscriminantSaliency::computeSaliencyImpl ( InputArray image, OutputArray saliencyMap )
57
57
{
58
- vector<Mat> img_sq, saliency_sq ;
58
+ vector<Mat> img_sq;
59
59
image.getMatVector (img_sq);
60
- saliencyMap.getMatVector (saliency_sq);
61
- cout << saliency_sq.size () << endl;
60
+ vector<Mat>& saliency_sq = *( std::vector<Mat>* ) saliencyMap.getObj ();
62
61
CV_Assert ( !(img_sq.empty ()) || !(img_sq[0 ].empty ()) );
62
+ saliencyMapGenerator (img_sq, saliency_sq);
63
63
return true ;
64
64
}
65
65
66
- vector<Mat> DiscriminantSaliency::saliencyMapGenerator ( std:: vector<Mat> img_sq )
66
+ vector<Mat> DiscriminantSaliency::saliencyMapGenerator ( vector<Mat> img_sq, vector<Mat>& saliency_sq )
67
67
{
68
68
CV_Assert ( img_sq.size () >= temporalSize );
69
69
for ( unsigned i = 0 ; i < img_sq.size (); i++ )
70
70
{
71
71
resize (img_sq[i], img_sq[i], imgProcessingSize);
72
72
}
73
- vector<Mat> saliency_sq;
73
+ // vector<Mat> saliency_sq;
74
74
for ( unsigned i = temporalSize - 1 ; i < img_sq.size (); i++ )
75
75
{
76
76
saliency_sq.push_back (Mat (imgProcessingSize, CV_64F, Scalar::all (0.0 )));
77
- for ( unsigned r = (centerSize - 1 ) / 2 ; r < imgProcessingSize.height - (centerSize - (centerSize - 1 ) / 2 ); r+= (2 * stride + 1 ) )
77
+ for ( unsigned r = (centerSize - 1 ) / 2 ; r < imgProcessingSize.height - (centerSize - (centerSize - 1 ) / 2 - 1 ); r+= (2 * stride + 1 ) )
78
78
{
79
- for ( unsigned c = (centerSize - 1 ) / 2 ; c < imgProcessingSize.width - (centerSize - (centerSize - 1 ) / 2 ); c+= (2 * stride + 1 ) )
79
+ for ( unsigned c = (centerSize - 1 ) / 2 ; c < imgProcessingSize.width - (centerSize - (centerSize - 1 ) / 2 - 1 ); c+= (2 * stride + 1 ) )
80
80
{
81
81
Mat center, surround, all;
82
82
DT para_c0, para_c1, para_w;
@@ -103,7 +103,7 @@ vector<Mat> DiscriminantSaliency::saliencyMapGenerator( std::vector<Mat> img_sq
103
103
104
104
void DiscriminantSaliency::patchGenerator ( const vector<Mat>& img_sq, unsigned index, unsigned r, unsigned c, Mat& center, Mat& surround, Mat& all )
105
105
{
106
- unsigned r1 = max (r - (windowSize - 1 ) / 2 , ( unsigned ) 0 ), c1 = max (c - (windowSize - 1 ) / 2 , ( unsigned ) 0 );
106
+ unsigned r1 = max (( int ) r - (( int ) windowSize - 1 ) / 2 , 0 ), c1 = max (( int ) c - (( int ) windowSize - 1 ) / 2 , 0 );
107
107
unsigned r2 = min (r1 + windowSize, (unsigned )imgProcessingSize.height ), c2 = min (c1 + windowSize, (unsigned )imgProcessingSize.width );
108
108
all = Mat (patchSize, temporalSize, CV_64F, Scalar::all (0.0 ));
109
109
surround = Mat (patchSize, temporalSize, CV_64F, Scalar::all (0.0 ));
0 commit comments