Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv_contrib
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv_contrib
Commits
e16ba043
Commit
e16ba043
authored
Oct 18, 2014
by
Dmitriy Anisimov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated or_sun dataset loader
parent
99a5f4cf
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
71 additions
and
14 deletions
+71
-14
or_sun.hpp
modules/datasets/include/opencv2/datasets/or_sun.hpp
+3
-1
or_sun.cpp
modules/datasets/samples/or_sun.cpp
+7
-8
or_sun.cpp
modules/datasets/src/or_sun.cpp
+61
-5
No files found.
modules/datasets/include/opencv2/datasets/or_sun.hpp
View file @
e16ba043
...
...
@@ -56,8 +56,8 @@ namespace datasets
struct
OR_sunObj
:
public
Object
{
int
label
;
std
::
string
name
;
std
::
vector
<
std
::
string
>
imageNames
;
};
class
CV_EXPORTS
OR_sun
:
public
Dataset
...
...
@@ -66,6 +66,8 @@ public:
virtual
void
load
(
const
std
::
string
&
path
)
=
0
;
static
Ptr
<
OR_sun
>
create
();
std
::
vector
<
std
::
string
>
paths
;
};
}
...
...
modules/datasets/samples/or_sun.cpp
View file @
e16ba043
...
...
@@ -70,16 +70,15 @@ int main(int argc, char *argv[])
// ***************
// dataset contains for each object its images.
// For example, let output dataset size and last object.
// For example, let output splits number, dataset size and last image.
int
numSplits
=
dataset
->
getNumSplits
();
printf
(
"splits number: %u
\n
"
,
numSplits
);
printf
(
"dataset size: %u
\n
"
,
(
unsigned
int
)
dataset
->
getTrain
().
size
());
OR_sunObj
*
example
=
static_cast
<
OR_sunObj
*>
(
dataset
->
getTrain
().
back
().
get
());
printf
(
"last object name: %s
\n
"
,
example
->
name
.
c_str
());
printf
(
"last object images number: %u
\n
"
,
(
unsigned
int
)
example
->
imageNames
.
size
());
vector
<
string
>
&
imageNames
=
example
->
imageNames
;
for
(
vector
<
string
>::
iterator
it
=
imageNames
.
begin
();
it
!=
imageNames
.
end
();
++
it
)
{
printf
(
"%s
\n
"
,
(
*
it
).
c_str
());
}
printf
(
"last image:
\n
name: %s
\n
"
,
example
->
name
.
c_str
());
printf
(
"label: %u
\n
"
,
example
->
label
);
printf
(
"label path: %s
\n
"
,
dataset
->
paths
[
example
->
label
].
c_str
());
return
0
;
}
modules/datasets/src/or_sun.cpp
View file @
e16ba043
...
...
@@ -43,6 +43,8 @@
#include "opencv2/datasets/util.hpp"
#include "precomp.hpp"
#include <map>
namespace
cv
{
namespace
datasets
...
...
@@ -61,6 +63,10 @@ public:
private
:
void
loadDataset
(
const
string
&
path
);
void
loadDatasetPart
(
const
string
&
path
,
vector
<
Ptr
<
Object
>
>
&
dataset_
);
map
<
string
,
int
>
pathLabel
;
};
/*OR_sunImp::OR_sunImp(const string &path)
...
...
@@ -73,13 +79,40 @@ void OR_sunImp::load(const string &path)
loadDataset
(
path
);
}
void
OR_sunImp
::
loadDataset
(
const
string
&
path
)
void
OR_sunImp
::
loadDataset
Part
(
const
string
&
path
,
vector
<
Ptr
<
Object
>
>
&
dataset_
)
{
train
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
test
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
validation
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
string
line
;
ifstream
infile
(
path
.
c_str
());
while
(
getline
(
infile
,
line
))
{
Ptr
<
OR_sunObj
>
curr
(
new
OR_sunObj
);
curr
->
label
=
397
;
curr
->
name
=
line
;
string
classNameFile
(
path
+
"ClassName.txt"
);
size_t
pos
=
curr
->
name
.
rfind
(
'/'
);
if
(
pos
!=
string
::
npos
)
{
string
labelStr
(
curr
->
name
.
substr
(
0
,
pos
+
1
));
map
<
string
,
int
>::
iterator
it
=
pathLabel
.
find
(
labelStr
);
if
(
it
!=
pathLabel
.
end
())
{
curr
->
label
=
(
*
it
).
second
;
}
else
{
curr
->
label
=
pathLabel
.
size
();
pathLabel
.
insert
(
make_pair
(
labelStr
,
curr
->
label
));
paths
.
push_back
(
labelStr
);
}
curr
->
name
=
curr
->
name
.
substr
(
pos
+
1
);
}
dataset_
.
push_back
(
curr
);
}
}
void
OR_sunImp
::
loadDataset
(
const
string
&
path
)
{
/*string classNameFile(path + "ClassName.txt");
ifstream infile(classNameFile.c_str());
string line;
while (getline(infile, line))
...
...
@@ -96,6 +129,29 @@ void OR_sunImp::loadDataset(const string &path)
}
train.back().push_back(curr);
}*/
for
(
unsigned
int
i
=
1
;
i
<=
10
;
++
i
)
{
char
tmp
[
3
];
sprintf
(
tmp
,
"%u"
,
i
);
string
numStr
;
if
(
i
<
10
)
{
numStr
=
string
(
"0"
)
+
string
(
tmp
);
}
else
{
numStr
=
tmp
;
}
string
trainFile
(
path
+
"Partitions/Training_"
+
numStr
+
".txt"
);
string
testFile
(
path
+
"Partitions/Testing_"
+
numStr
+
".txt"
);
train
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
test
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
validation
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
loadDatasetPart
(
trainFile
,
train
.
back
());
loadDatasetPart
(
testFile
,
test
.
back
());
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment