Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dlib
Commits
c7311392
Commit
c7311392
authored
Jun 19, 2011
by
Davis King
Browse files
Added the start of a GUI to edit the image metadata files.
parent
8e1f4d4c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
236 additions
and
4 deletions
+236
-4
tools/imglab/CMakeLists.txt
tools/imglab/CMakeLists.txt
+2
-0
tools/imglab/src/main.cpp
tools/imglab/src/main.cpp
+4
-4
tools/imglab/src/metadata_editor.cpp
tools/imglab/src/metadata_editor.cpp
+181
-0
tools/imglab/src/metadata_editor.h
tools/imglab/src/metadata_editor.h
+49
-0
No files found.
tools/imglab/CMakeLists.txt
View file @
c7311392
...
...
@@ -16,6 +16,8 @@ ADD_EXECUTABLE(${target_name}
src/main.cpp
src/image_dataset_metadata.h
src/image_dataset_metadata.cpp
src/metadata_editor.h
src/metadata_editor.cpp
)
...
...
tools/imglab/src/main.cpp
View file @
c7311392
#include "image_dataset_metadata.h"
#include "metadata_editor.h"
#include <iostream>
#include <fstream>
...
...
@@ -113,7 +114,7 @@ int main(int argc, char** argv)
if
(
parser
.
option
(
"h"
))
{
cout
<<
"Usage: imglab [options] <image files/directories or XML file
list
>
\n
"
;
cout
<<
"Usage: imglab [options] <image files/directories or XML file>
\n
"
;
parser
.
print_options
(
cout
);
cout
<<
endl
<<
endl
;
return
EXIT_SUCCESS
;
...
...
@@ -127,9 +128,8 @@ int main(int argc, char** argv)
if
(
parser
.
number_of_arguments
()
==
1
)
{
dlib
::
image_dataset_metadata
::
dataset
meta
;
load_image_dataset_metadata
(
meta
,
parser
[
0
]);
save_image_dataset_metadata
(
meta
,
"out.xml"
);
metadata_editor
editor
(
parser
[
0
]);
editor
.
wait_until_closed
();
}
}
catch
(
exception
&
e
)
...
...
tools/imglab/src/metadata_editor.cpp
0 → 100644
View file @
c7311392
// Copyright (C) 2011 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#include "metadata_editor.h"
#include <dlib/array.h>
#include <dlib/queue.h>
using
namespace
std
;
using
namespace
dlib
;
// ----------------------------------------------------------------------------------------
metadata_editor
::
metadata_editor
(
const
std
::
string
&
filename_
)
:
filename
(
filename_
),
mbar
(
*
this
),
lb_images
(
*
this
),
image_pos
(
0
)
{
load_image_dataset_metadata
(
metadata
,
filename
);
dlib
::
array
<
std
::
string
>::
expand_1a
files
;
files
.
resize
(
metadata
.
images
.
size
());
for
(
unsigned
long
i
=
0
;
i
<
metadata
.
images
.
size
();
++
i
)
{
files
[
i
]
=
metadata
.
images
[
i
].
filename
;
}
lb_images
.
load
(
files
);
lb_images
.
enable_multiple_select
();
select_image
(
0
);
lb_images
.
set_click_handler
(
*
this
,
&
metadata_editor
::
on_lb_images_clicked
);
mbar
.
set_number_of_menus
(
1
);
mbar
.
set_menu_name
(
0
,
"File"
,
'F'
);
mbar
.
menu
(
0
).
add_menu_item
(
menu_item_text
(
"Save"
,
*
this
,
&
metadata_editor
::
file_save
,
'S'
));
mbar
.
menu
(
0
).
add_menu_item
(
menu_item_text
(
"Save As"
,
*
this
,
&
metadata_editor
::
file_save_as
,
'A'
));
mbar
.
menu
(
0
).
add_menu_item
(
menu_item_separator
());
mbar
.
menu
(
0
).
add_menu_item
(
menu_item_text
(
"Remove Selected Images"
,
*
this
,
&
metadata_editor
::
remove_selected_images
,
'R'
));
mbar
.
menu
(
0
).
add_menu_item
(
menu_item_separator
());
mbar
.
menu
(
0
).
add_menu_item
(
menu_item_text
(
"Quit"
,
static_cast
<
base_window
&>
(
*
this
),
&
drawable_window
::
close_window
,
'Q'
));
// set the size of this window
set_size
(
430
,
380
);
on_window_resized
();
set_title
(
"Image Dataset Metadata Editor"
);
show
();
}
// ----------------------------------------------------------------------------------------
metadata_editor
::
~
metadata_editor
(
)
{
close_window
();
}
// ----------------------------------------------------------------------------------------
void
metadata_editor
::
file_save
()
{
save_metadata_to_file
(
filename
);
}
// ----------------------------------------------------------------------------------------
void
metadata_editor
::
save_metadata_to_file
(
const
std
::
string
&
file
)
{
try
{
save_image_dataset_metadata
(
metadata
,
file
);
}
catch
(
dlib
::
error
&
e
)
{
message_box
(
"Error saving file"
,
e
.
what
());
}
}
// ----------------------------------------------------------------------------------------
void
metadata_editor
::
file_save_as
()
{
save_file_box
(
*
this
,
&
metadata_editor
::
save_metadata_to_file
);
}
// ----------------------------------------------------------------------------------------
void
metadata_editor
::
remove_selected_images
()
{
}
// ----------------------------------------------------------------------------------------
void
metadata_editor
::
on_window_resized
(
)
{
drawable_window
::
on_window_resized
();
unsigned
long
width
,
height
;
get_size
(
width
,
height
);
lb_images
.
set_pos
(
0
,
mbar
.
bottom
()
+
1
);
lb_images
.
set_size
(
150
,
height
-
mbar
.
height
());
}
// ----------------------------------------------------------------------------------------
void
metadata_editor
::
on_keydown
(
unsigned
long
key
,
bool
is_printable
,
unsigned
long
state
)
{
drawable_window
::
on_keydown
(
key
,
is_printable
,
state
);
if
(
is_printable
)
return
;
if
(
key
==
base_window
::
KEY_UP
)
{
select_image
(
image_pos
-
1
);
}
else
if
(
key
==
base_window
::
KEY_DOWN
)
{
select_image
(
image_pos
+
1
);
}
}
// ----------------------------------------------------------------------------------------
void
metadata_editor
::
select_image
(
unsigned
long
idx
)
{
if
(
idx
<
lb_images
.
size
())
{
// unselect all currently selected images
dlib
::
queue
<
unsigned
long
>::
kernel_1a
list
;
lb_images
.
get_selected
(
list
);
list
.
reset
();
while
(
list
.
move_next
())
{
lb_images
.
unselect
(
list
.
element
());
}
lb_images
.
select
(
idx
);
image_pos
=
idx
;
}
}
// ----------------------------------------------------------------------------------------
void
metadata_editor
::
on_lb_images_clicked
(
unsigned
long
idx
)
{
image_pos
=
idx
;
}
// ----------------------------------------------------------------------------------------
tools/imglab/src/metadata_editor.h
0 → 100644
View file @
c7311392
// Copyright (C) 2011 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#ifndef DLIB_METADATA_EdITOR_H__
#define DLIB_METADATA_EdITOR_H__
#include <dlib/gui_widgets.h>
#include "image_dataset_metadata.h"
// ----------------------------------------------------------------------------------------
class
metadata_editor
:
public
dlib
::
drawable_window
{
public:
metadata_editor
(
const
std
::
string
&
filename_
);
~
metadata_editor
();
private:
void
file_save
();
void
file_save_as
();
void
remove_selected_images
();
virtual
void
on_window_resized
();
virtual
void
on_keydown
(
unsigned
long
key
,
bool
is_printable
,
unsigned
long
state
);
void
on_lb_images_clicked
(
unsigned
long
idx
);
void
select_image
(
unsigned
long
idx
);
void
save_metadata_to_file
(
const
std
::
string
&
file
);
std
::
string
filename
;
dlib
::
image_dataset_metadata
::
dataset
metadata
;
dlib
::
menu_bar
mbar
;
dlib
::
list_box
lb_images
;
unsigned
long
image_pos
;
};
// ----------------------------------------------------------------------------------------
#endif // DLIB_METADATA_EdITOR_H__
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