123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #ifndef IMAGE_TEST_H
- #define IMAGE_TEST_H
- #include <opencv4/opencv2/opencv.hpp>
- #include <string>
- #include <sys/time.h>
- #include <chrono>
- namespace ImageTest
- {
- void saveImageFromData(unsigned char *data, int width, int height, const std::string &filename = "./output.png")
- {
- cv::Mat image(height, width, CV_8UC3, data);
- cv::imwrite(filename, image);
- }
- class HighResolutionTimer
- {
- public:
- // 开始计时
- void start()
- {
- start_time = std::chrono::high_resolution_clock::now();
- }
- // 停止计时
- void stop()
- {
- end_time = std::chrono::high_resolution_clock::now();
- }
- // 获取经过的时间(以秒为单位)
- double elapsed() const
- {
- return std::chrono::duration<double>(end_time - start_time).count();
- }
- // 获取经过的时间(以毫秒为单位)
- double elapsed_milliseconds() const
- {
- return std::chrono::duration<double, std::milli>(end_time - start_time).count();
- }
- // 获取经过的时间(以微秒为单位)
- double elapsed_microseconds() const
- {
- return std::chrono::duration<double, std::micro>(end_time - start_time).count();
- }
- private:
- std::chrono::high_resolution_clock::time_point start_time;
- std::chrono::high_resolution_clock::time_point end_time;
- };
- }
- #endif // IMAGE_TEST_H
|