1 #include "stdafx.h">
2
3
4 /* For description look into the help() function. */
5
6
7 #include "opencv2/photo.hpp"
8 #include "opencv2/imgcodecs.hpp"
9 #include "opencv2/highgui.hpp"
10
11 #include <vector>
12 #include <iostream>
13 #include <fstream>
14
15 using namespace cv;
16 using namespace std;
17
18 void loadExposureSeq(String, vector<Mat>&, vector<float>&);
19
20 int main(int argc, char**argv)
21 {
22 //! [Load images and exposure times]
23 vector<Mat> images;
24 vector<float> times;
25 loadExposureSeq("F://opencv//VS_demo//opencvdemo//data//Memorial_SourceImages", images, times);
26 //! [Load images and exposure times]
27
28 //! [Estimate camera response]
29 Mat response;
30 Ptr<CalibrateDebevec> calibrate = createCalibrateDebevec();
31 calibrate->process(images, response, times);
32 //! [Estimate camera response]
33
34 //! [Make HDR image]
35 Mat hdr;
36 Ptr<MergeDebevec> merge_debevec = createMergeDebevec();
37 merge_debevec->process(images, hdr, times, response);
38 //! [Make HDR image]
39
40 //! [Tonemap HDR image]
41 Mat ldr;
42 Ptr<Tonemap> tonemap = createTonemap(2.2f);
43 tonemap->process(hdr, ldr);
44 //! [Tonemap HDR image]
45
46 //! [Perform exposure fusion]
47 Mat fusion;
48 Ptr<MergeMertens> merge_mertens = createMergeMertens();
49 merge_mertens->process(images, fusion);
50 //! [Perform exposure fusion]
51
52 //! [Write results]
53 imwrite("fusion.png", fusion * 255);
54 imwrite("ldr.png", ldr * 255);
55 imwrite("hdr.hdr", hdr);
56 //! [Write results]
57
58 return 0;
59 }
60
61 void loadExposureSeq(String path, vector<Mat>& images, vector<float>& times)
62 {
63 path = path + "//";
64 string str = path + "list.txt";
65 ifstream list_file(str.c_str());
66 string name;
67 float val;
68 while (list_file >> name >> val) {
69 Mat img = imread(path + name);
70 images.push_back(img);
71 times.push_back(1 / val);
72 }
73 list_file.close();
74 }
运行:
输入:
输出:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2020-08-26 Qt QWidget标题栏双击事件
2020-08-26 Qt 实现点击主窗口内任意位置,在其位置弹窗弹窗,且弹窗必须在主窗口的换位内
2020-08-26 Qt 实现悬浮窗效果
2020-08-26 Qt 子窗口监听主窗口信号
2020-08-26 Qt 坐标系统、窗口部件位置大小设置及简单的QPushButton使用
2020-08-26 Qt 子窗口(自定义qdialog,qwidget)嵌入到父窗口,子窗口跟随父窗口
2020-08-26 Qt WindowType详解