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
f9dab616
Commit
f9dab616
authored
Aug 24, 2015
by
Vadim Pisarevsky
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #328 from lluisgomez:icdar_dataset
parents
254d5b9f
271a9b40
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
364 additions
and
0 deletions
+364
-0
tr_icdar.hpp
modules/datasets/include/opencv2/datasets/tr_icdar.hpp
+87
-0
tr_icdar.cpp
modules/datasets/samples/tr_icdar.cpp
+101
-0
tr_icdar_benchmark.cpp
modules/datasets/samples/tr_icdar_benchmark.cpp
+0
-0
tr_icdar.cpp
modules/datasets/src/tr_icdar.cpp
+176
-0
No files found.
modules/datasets/include/opencv2/datasets/tr_icdar.hpp
0 → 100644
View file @
f9dab616
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2014, Itseez Inc, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of the copyright holders may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Itseez Inc or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#ifndef OPENCV_DATASETS_TR_ICDAR_HPP
#define OPENCV_DATASETS_TR_ICDAR_HPP
#include <string>
#include <vector>
#include "opencv2/datasets/dataset.hpp"
#include <opencv2/core.hpp>
namespace
cv
{
namespace
datasets
{
//! @addtogroup datasets_tr
//! @{
struct
word
{
std
::
string
value
;
int
height
,
width
,
x
,
y
;
};
struct
TR_icdarObj
:
public
Object
{
std
::
string
fileName
;
std
::
vector
<
std
::
string
>
lex100
;
std
::
vector
<
std
::
string
>
lexFull
;
std
::
vector
<
word
>
words
;
};
class
CV_EXPORTS
TR_icdar
:
public
Dataset
{
public
:
virtual
void
load
(
const
std
::
string
&
path
)
=
0
;
static
Ptr
<
TR_icdar
>
create
();
};
//! @}
}
}
#endif
modules/datasets/samples/tr_icdar.cpp
0 → 100644
View file @
f9dab616
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2014, Itseez Inc, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of the copyright holders may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Itseez Inc or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#include "opencv2/datasets/tr_icdar.hpp"
#include <opencv2/core.hpp>
#include <cstdio>
#include <cstdlib> // atoi
#include <string>
#include <vector>
using
namespace
std
;
using
namespace
cv
;
using
namespace
cv
::
datasets
;
int
main
(
int
argc
,
char
*
argv
[])
{
const
char
*
keys
=
"{ help h usage ? | | show this message }"
"{ path p |true| path to dataset root folder }"
;
CommandLineParser
parser
(
argc
,
argv
,
keys
);
string
path
(
parser
.
get
<
string
>
(
"path"
));
if
(
parser
.
has
(
"help"
)
||
path
==
"true"
)
{
parser
.
printMessage
();
return
-
1
;
}
// loading train & test images description
Ptr
<
TR_icdar
>
dataset
=
TR_icdar
::
create
();
dataset
->
load
(
path
);
// ***************
// dataset. train & test contains images description.
// For example, let output the last element in train set and it's description.
// And their sizes.
printf
(
"train size: %u
\n
"
,
(
unsigned
int
)
dataset
->
getTrain
().
size
());
printf
(
"test size: %u
\n
"
,
(
unsigned
int
)
dataset
->
getTest
().
size
());
TR_icdarObj
*
example
=
static_cast
<
TR_icdarObj
*>
(
dataset
->
getTrain
().
back
().
get
());
printf
(
"last element:
\n
file name: %s"
,
example
->
fileName
.
c_str
());
printf
(
"
\n
lex100: "
);
for
(
vector
<
string
>::
iterator
it
=
example
->
lex100
.
begin
();
it
!=
example
->
lex100
.
end
();
++
it
)
{
printf
(
"%s,"
,
(
*
it
).
c_str
());
}
printf
(
"
\n
lexFULL: "
);
for
(
vector
<
string
>::
iterator
it
=
example
->
lexFull
.
begin
();
it
!=
example
->
lexFull
.
end
();
++
it
)
{
printf
(
"%s,"
,
(
*
it
).
c_str
());
}
printf
(
"
\n
words:
\n
"
);
for
(
vector
<
word
>::
iterator
it
=
example
->
words
.
begin
();
it
!=
example
->
words
.
end
();
++
it
)
{
word
&
t
=
(
*
it
);
printf
(
"%s
\n
height: %u, width: %u, x: %u, y: %u
\n
"
,
t
.
value
.
c_str
(),
t
.
height
,
t
.
width
,
t
.
x
,
t
.
y
);
}
return
0
;
}
modules/datasets/samples/tr_icdar_benchmark.cpp
0 → 100644
View file @
f9dab616
This diff is collapsed.
Click to expand it.
modules/datasets/src/tr_icdar.cpp
0 → 100644
View file @
f9dab616
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2014, Itseez Inc, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of the copyright holders may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Itseez Inc or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#include "opencv2/datasets/tr_icdar.hpp"
#include "opencv2/datasets/util.hpp"
#include <sstream>
#include <fstream>
namespace
cv
{
namespace
datasets
{
using
namespace
std
;
class
TR_icdarImp
:
public
TR_icdar
{
public
:
TR_icdarImp
()
{}
//TR_icdarImp(const string &path);
virtual
~
TR_icdarImp
()
{}
virtual
void
load
(
const
string
&
path
);
private
:
void
loadDataset
(
const
string
&
path
);
void
objParseFiles
(
const
string
&
path
,
int
img_id
,
vector
<
Ptr
<
Object
>
>
&
out
);
};
void
TR_icdarImp
::
objParseFiles
(
const
string
&
path
,
int
img_id
,
vector
<
Ptr
<
Object
>
>
&
out
)
{
Ptr
<
TR_icdarObj
>
curr
(
new
TR_icdarObj
);
stringstream
fileName
;
fileName
<<
"img_"
<<
img_id
<<
".jpg"
;
curr
->
fileName
=
fileName
.
str
();
stringstream
gtFileName
;
gtFileName
<<
path
<<
"/gt_img_"
<<
img_id
<<
".txt"
;
ifstream
infile
(
gtFileName
.
str
().
c_str
());
if
(
!
infile
.
is_open
())
CV_Error
(
Error
::
StsBadArg
,
gtFileName
.
str
().
c_str
());
string
line
;
while
(
getline
(
infile
,
line
))
{
//Ignore EOL characters
line
.
erase
(
remove
(
line
.
begin
(),
line
.
end
(),
'\n'
),
line
.
end
());
line
.
erase
(
remove
(
line
.
begin
(),
line
.
end
(),
'\r'
),
line
.
end
());
//Ignore byte-order marks (BOM first utf character in W$ files)
if
(
(
line
[
0
]
==
(
char
)
0xEFu
)
&&
(
line
[
1
]
==
(
char
)
0xBBu
)
&&
(
line
[
2
]
==
(
char
)
0xBFu
)
)
line
.
erase
(
line
.
begin
(),
line
.
begin
()
+
3
);
vector
<
string
>
fields
;
split
(
line
,
fields
,
','
);
word
w
;
w
.
value
=
fields
[
8
];
w
.
x
=
atoi
(
fields
[
0
].
c_str
());
w
.
y
=
atoi
(
fields
[
1
].
c_str
());
w
.
width
=
atoi
(
fields
[
2
].
c_str
())
-
atoi
(
fields
[
0
].
c_str
());
w
.
height
=
atoi
(
fields
[
7
].
c_str
())
-
atoi
(
fields
[
1
].
c_str
());
curr
->
words
.
push_back
(
w
);
}
infile
.
close
();
stringstream
lex100FileName
;
lex100FileName
<<
path
<<
"/voc_img_"
<<
img_id
<<
".txt"
;
infile
.
open
(
lex100FileName
.
str
().
c_str
());
if
(
!
infile
.
is_open
())
CV_Error
(
Error
::
StsBadArg
,
lex100FileName
.
str
().
c_str
());
while
(
getline
(
infile
,
line
))
{
//Ignore EOL characters
line
.
erase
(
remove
(
line
.
begin
(),
line
.
end
(),
'\n'
),
line
.
end
());
line
.
erase
(
remove
(
line
.
begin
(),
line
.
end
(),
'\r'
),
line
.
end
());
//Ignore byte-order marks (BOM first utf character in W$ files)
if
(
(
line
[
0
]
==
(
char
)
0xEFu
)
&&
(
line
[
1
]
==
(
char
)
0xBBu
)
&&
(
line
[
2
]
==
(
char
)
0xBFu
)
)
line
.
erase
(
line
.
begin
(),
line
.
begin
()
+
3
);
curr
->
lex100
.
push_back
(
line
);
}
infile
.
close
();
stringstream
lexFullFileName
;
if
(
path
.
substr
(
path
.
size
()
-
5
,
4
)
==
string
(
"test"
))
lexFullFileName
<<
path
<<
"ch2_test_vocabulary.txt"
;
else
lexFullFileName
<<
path
<<
"ch2_training_vocabulary.txt"
;
infile
.
open
(
lexFullFileName
.
str
().
c_str
());
if
(
!
infile
.
is_open
())
CV_Error
(
Error
::
StsBadArg
,
lexFullFileName
.
str
().
c_str
());
while
(
getline
(
infile
,
line
))
{
//Ignore EOL characters
line
.
erase
(
remove
(
line
.
begin
(),
line
.
end
(),
'\n'
),
line
.
end
());
line
.
erase
(
remove
(
line
.
begin
(),
line
.
end
(),
'\r'
),
line
.
end
());
//Ignore byte-order marks (BOM first utf character in W$ files)
if
(
(
line
[
0
]
==
(
char
)
0xEFu
)
&&
(
line
[
1
]
==
(
char
)
0xBBu
)
&&
(
line
[
2
]
==
(
char
)
0xBFu
)
)
line
.
erase
(
line
.
begin
(),
line
.
begin
()
+
3
);
curr
->
lexFull
.
push_back
(
line
);
}
infile
.
close
();
out
.
push_back
(
curr
);
}
/*TR_icdarImp::TR_icdarImp(const string &path)
{
loadDataset(path);
}*/
void
TR_icdarImp
::
load
(
const
string
&
path
)
{
loadDataset
(
path
);
}
void
TR_icdarImp
::
loadDataset
(
const
string
&
path
)
{
train
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
test
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
validation
.
push_back
(
vector
<
Ptr
<
Object
>
>
());
string
train_path
(
path
+
"/train/"
);
string
test_path
(
path
+
"/test/"
);
// loading 229 train images descriptions
for
(
int
i
=
1
;
i
<
230
;
i
++
)
objParseFiles
(
train_path
,
i
,
train
.
back
());
// loading 233 test images descriptions
for
(
int
i
=
1
;
i
<
234
;
i
++
)
objParseFiles
(
test_path
,
i
,
test
.
back
());
}
Ptr
<
TR_icdar
>
TR_icdar
::
create
()
{
return
Ptr
<
TR_icdarImp
>
(
new
TR_icdarImp
);
}
}
}
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