#include <iostream>
#include <vector>
#include <string>
#include <set>
#include <fstream>
#include <opencv2/opencv.hpp>
int main(int argc, char **argv) {
std::string root_path = "/home/alan/images/";
std::string timestamp_path = root_path + "timestamps.txt";
std::ifstream file(timestamp_path);
if (!file.is_open()) {
std::cout << "can not open file: " << timestamp_path << std::endl;
}
std::vector<long long> timestamps;
std::string timestamp;
while (file >> timestamp) {
timestamps.push_back(std::stoll(timestamp));
}
std::vector<long long> choosed_timestamps;
std::set<long long> sorted_timestamps;
int i = 0;
int key = cv::waitKey(0);
while(key != 27) {
switch((char)key) {
case 'u':
i++;
if(i >= timestamps.size()) {
i = timestamps.size() - 1;
}
break;
case 'd':
i--;
if(i < 0) {
i = 0;
}
break;
case 'c':
sorted_timestamps.insert(timestamps[i]);
break;
case 's':
std::ofstream out(root_path + "choosed_timestamps.txt");
for (auto timestamp : sorted_timestamps) {
out << timestamp << std::endl;
}
break;
}
cv::Mat image = cv::imread(root_path + std::to_string(timestamps[i]) + ".jpg");
cv::imshow("image", image);
key = cv::waitKey(0);
}
return 0;
}