diff --git a/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp b/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp index f610fa64d..a7521d680 100644 --- a/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp +++ b/modules/saliency/include/opencv2/saliency/saliencySpecializedClasses.hpp @@ -210,6 +210,7 @@ class CV_EXPORTS_W ObjectnessBING : public Objectness static inline int bgrMaxDist(const Vec3b &u, const Vec3b &v) {int b = abs(u[0]-v[0]), g = abs(u[1]-v[1]), r = abs(u[2]-v[2]); b = max(b,g); return max(b,r);} static inline int vecDist3b(const Vec3b &u, const Vec3b &v) {return abs(u[0]-v[0]) + abs(u[1]-v[1]) + abs(u[2]-v[2]);} + //inline string strVec4i(const Vec4i &vv) const {return std::format("%d, %d, %d, %d", vv[0], vv[1], vv[2], vv[3]);} //Non-maximal suppress static void nonMaxSup(CMat &matchCost1f, ValStructVec &matchCost, int NSS = 1, int maxPoint = 50, bool fast = true); diff --git a/modules/saliency/samples/computeSaliency.cpp b/modules/saliency/samples/computeSaliency.cpp index 06be1bc1b..c1d2fe876 100644 --- a/modules/saliency/samples/computeSaliency.cpp +++ b/modules/saliency/samples/computeSaliency.cpp @@ -94,6 +94,9 @@ int main( int argc, char** argv ) std::cout << "-----------------OBJECTNESS-----------" << std::endl; std::cout << "OBJ BB VECTOR SIZE" << saliencyMap.size() << std::endl; + std::cout << " " << saliencyMap[0] << std::endl; + std::cout << " " << saliencyMap[1] << std::endl; + std::cout << " " << saliencyMap[2] << std::endl; } } diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.idx b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.idx new file mode 100644 index 000000000..1b8e98883 Binary files /dev/null and b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.idx differ diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS1 b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS1 new file mode 100644 index 000000000..d67c5830b Binary files /dev/null and b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS1 differ diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS2 b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS2 new file mode 100644 index 000000000..5aaac8128 Binary files /dev/null and b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8HSV.wS2 differ diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.idx b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.idx new file mode 100644 index 000000000..1b8e98883 Binary files /dev/null and b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.idx differ diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.wS1 b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.wS1 new file mode 100644 index 000000000..6be672cc2 Binary files /dev/null and b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.wS1 differ diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.wS2 b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.wS2 new file mode 100644 index 000000000..7e774ce6c Binary files /dev/null and b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8I.wS2 differ diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.idx b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.idx new file mode 100644 index 000000000..1b8e98883 Binary files /dev/null and b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.idx differ diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS1 b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS1 new file mode 100644 index 000000000..fe83f6597 Binary files /dev/null and b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS1 differ diff --git a/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS2 b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS2 new file mode 100644 index 000000000..052fae1f4 Binary files /dev/null and b/modules/saliency/src/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS2 differ diff --git a/modules/saliency/src/objectnessBING.cpp b/modules/saliency/src/objectnessBING.cpp index 972541e6c..5cae912ab 100644 --- a/modules/saliency/src/objectnessBING.cpp +++ b/modules/saliency/src/objectnessBING.cpp @@ -75,10 +75,10 @@ ObjectnessBING::~ObjectnessBING() void ObjectnessBING::setColorSpace( int clr ) { _Clr = clr; - _modelName = "/home/puja/src/opencv_contrib/modules/saliency/src/ObjectnessTrainedModel" + _modelName = "/home/puja/src/opencv_contrib/modules/saliency/src/ObjectnessTrainedModel/" + string( format( "ObjNessB%gW%d%s", _base, _W, _clrName[_Clr] ).c_str() ); // _trainDirSI = _voc.localDir + string(format("TrainS1B%gW%d%s/", _base, _W, _clrName[_Clr]).c_str()); - // _bbResDir = _voc.resDir + string(format("BBoxesB%gW%d%s/", _base, _W, _clrName[_Clr]).c_str()); + _bbResDir = "/home/puja/src/opencv_contrib/modules/saliency/src/" + string(format("BBoxesB%gW%d%s/", _base, _W, _clrName[_Clr]).c_str()); } int ObjectnessBING::loadTrainedModel( string modelName ) // Return -1, 0, or 1 if partial, none, or all loaded @@ -387,6 +387,18 @@ void ObjectnessBING::getObjBndBoxesForSingleImage( Mat img, ValStructVec sortedBB = finalBoxes.getSortedStructVal(); + FILE *f = fopen( _S( fName + ".txt" ), "w" ); + fprintf( f, "%d\n", finalBoxes.size() ); + for ( size_t k = 0; k < finalBoxes.size(); k++ ){ + //fprintf(f, "%g, %s\n", finalBoxes(k), _S(strVec4i(finalBoxes[k]))); + //fprintf(f, "%g, %s\n", finalBoxes(k), finalBoxes(k)[0],finalBoxes(k)[1],finalBoxes(k)[2],finalBoxes(k)[3]); + } + + fclose( f ); */ } struct MatchPathSeparator @@ -411,15 +423,15 @@ std::string inline removeExtension( std::string const& filename ) // Read matrix from binary file bool ObjectnessBING::matRead( const string& filename, Mat& _M ) { - String filenamePlusExt(filename.c_str()); - filenamePlusExt+=".yml.gz"; + String filenamePlusExt( filename.c_str() ); + filenamePlusExt += ".yml.gz"; FileStorage fs2( filenamePlusExt, FileStorage::READ ); //String fileNameString( filename.c_str() ); Mat M; - fs2[String(removeExtension( basename( filename ) ).c_str())] >> M; + fs2[String( removeExtension( basename( filename ) ).c_str() )] >> M; - /*FILE* f = fopen(_S(filename), "rb"); + /* FILE* f = fopen(_S(filename), "rb"); if (f == NULL) return false; char buf[8]; @@ -460,21 +472,15 @@ bool ObjectnessBING::computeSaliencyImpl( const InputArray image, OutputArray ob // List of rectangles returned by objectess function in ascending order. // At the top there are the rectangles with lower values of ​​objectness, ie more // likely to have objects in them. - //vector > + //vector - //objBoundingBox = finalBoxes.getSortedStructVal(); - /* vector tmp=finalBoxes.getSortedStructVal(); - objBoundingBox.create(tmp.size(), 1, CV_8U); - Mat obj= objBoundingBox.getMat(); - obj=tmp;*/ + vector sortedBB = finalBoxes.getSortedStructVal(); + objBoundingBox.create( 1, sortedBB.size(), CV_MAKETYPE( CV_32S, CV_MAT_CN(objBoundingBox.type()) ) ); Mat obj = objBoundingBox.getMat(); - obj = Mat(finalBoxes.getSortedStructVal()); - -/* Mat obj2 = objBoundingBox.getMatRef(); - obj2 = Mat(finalBoxes.getSortedStructVal());*/ - + for ( uint i = 0; i < sortedBB.size(); i++ ) + obj.at( i ) = sortedBB[i]; // List of the rectangles' objectness value unsigned long int valIdxesSize = finalBoxes.getvalIdxes().size();