Commit bfdd8910b9d661bbf168b3c57fa42b8af8422dca
0 parents
initial commit
Showing
5 changed files
with
112 additions
and
0 deletions
Show diff stats
1 | +++ a/CMakeLists.txt | |
1 | +#Specify the version being used aswell as the language | |
2 | +cmake_minimum_required(VERSION 2.8) | |
3 | + | |
4 | +#Name your project here | |
5 | +project(2netpbm) | |
6 | + | |
7 | +#set the module directory | |
8 | +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}") | |
9 | + | |
10 | +#build the executable in the binary directory on MS Visual Studio | |
11 | +if ( MSVC ) | |
12 | + SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIRECTORY}") | |
13 | + SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIRECTORY}") | |
14 | + SET( LIBRARY_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIRECTORY}") | |
15 | + SET( LIBRARY_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIRECTORY}") | |
16 | + add_definitions(-D_CRT_SECURE_NO_WARNINGS) | |
17 | + add_definitions(-D_SCL_SECURE_NO_WARNINGS) | |
18 | +endif ( MSVC ) | |
19 | + | |
20 | +#find packages----------------------------------- | |
21 | +#find OpenCV | |
22 | +find_package(OpenCV REQUIRED) | |
23 | + | |
24 | +#find the pthreads package | |
25 | +find_package(Threads) | |
26 | + | |
27 | +#find the X11 package | |
28 | +find_package(X11) | |
29 | + | |
30 | +#find the STIM library | |
31 | +find_package(STIM) | |
32 | + | |
33 | +#find Boost for Unix-based file lists | |
34 | +if( CMAKE_COMPILER_IS_GNUCC ) | |
35 | + find_package(Boost COMPONENTS filesystem system) | |
36 | + if(Boost_FOUND) | |
37 | + add_definitions(-DBOOST_PRECOMPILED) | |
38 | + include_directories(${Boost_INCLUDE_DIR}) | |
39 | + else(Boost_FOUND) | |
40 | + message(FATAL_ERROR "HSIproc requires Boost::filesystem and Boost::system when using GCC") | |
41 | + endif(Boost_FOUND) | |
42 | +endif( CMAKE_COMPILER_IS_GNUCC ) | |
43 | + | |
44 | +#set the STIM include directory (either user provided or downloaded) | |
45 | +include_directories(${STIM_INCLUDE_DIRS}) | |
46 | + | |
47 | +#Assign source files to the appropriate variables to easily associate them with executables | |
48 | +file(GLOB SRC_CPP "*.cpp") | |
49 | +file(GLOB SRC_H "*.h") | |
50 | + | |
51 | +#create an executable file | |
52 | +add_executable(2netpbm | |
53 | + ${SRC_CPP} | |
54 | + ${SRC_H} | |
55 | +) | |
56 | + | |
57 | +#set the link libraries | |
58 | +target_link_libraries(2netpbm | |
59 | + ${OpenCV_LIBS} | |
60 | + ${X11_LIBRARIES} | |
61 | +) | |
62 | + | |
63 | +#copy data files to the binary directory | |
64 | +file(COPY data/skyrim.jpg DESTINATION .) | |
65 | +file(COPY data/galaxy.jpg DESTINATION .) | |
0 | 66 | \ No newline at end of file | ... | ... |
1 | +++ a/FindSTIM.cmake | |
1 | +# set STIMLIB_PATH to the directory containing the stim subdirectory (the stim repository) | |
2 | + | |
3 | +include(FindPackageHandleStandardArgs) | |
4 | + | |
5 | +set(STIM_INCLUDE_DIR $ENV{STIMLIB_PATH}) | |
6 | + | |
7 | +find_package_handle_standard_args(STIM DEFAULT_MSG STIM_INCLUDE_DIR) | |
8 | + | |
9 | +if(STIM_FOUND) | |
10 | + set(STIM_INCLUDE_DIRS ${STIM_INCLUDE_DIR}) | |
11 | +endif() | ... | ... |
313 KB
25.6 KB
1 | +++ a/main.cpp | |
1 | +#include <iostream> | |
2 | +#include <vector> | |
3 | +#include <stim/parser/arguments.h> | |
4 | +#include <stim/parser/filename.h> | |
5 | +#include <stim/image/image.h> | |
6 | + | |
7 | +int main(int argc, char* argv[]) { | |
8 | + stim::arglist args; | |
9 | + | |
10 | + args.parse(argc, argv); | |
11 | + | |
12 | + if (args.nargs() == 0) { | |
13 | + std::cout << "Specify a file or file list to convert images to Netpbm." << std::endl; | |
14 | + exit(0); | |
15 | + } | |
16 | + | |
17 | + stim::filename fmask(args.arg(0)); | |
18 | + stim::filepath fpath("."); //default to the current file path | |
19 | + if (args.nargs() == 2) fpath = args.arg(1); //if a destination path is specified, save there | |
20 | + | |
21 | + if (fmask.wildcards()) { //if the given file name contains wild cards | |
22 | + std::vector<stim::filename> flist; //declare an STL vector | |
23 | + flist = fmask.get_list(); //get the corresponding file list | |
24 | + | |
25 | + for (size_t i = 0; i < flist.size(); i++) { //for each file in the list | |
26 | + stim::image<unsigned char> I(flist[i].str()); //load the corresponding image | |
27 | + std::string outname = fpath.str() + flist[i].prefix() + ".ppm"; | |
28 | + std::cout << "Saving " << outname << std::endl; | |
29 | + I.save_netpbm(outname); //save the file as a PPM | |
30 | + } | |
31 | + } | |
32 | + else { | |
33 | + stim::image<unsigned char> I(fmask.str()); | |
34 | + I.save(fmask.str() + ".ppm"); | |
35 | + } | |
36 | +} | |
0 | 37 | \ No newline at end of file | ... | ... |