如何使用opencv制作全景照片

如题所述

  ①:首先打开ptgui 软件,打开“加载图像功能”,选择并导入图片,或者将需要处理的一组图片全选直接拖到软件操作界面:

  ②导入照片后首先需要检查和设定相机参数,当然,对于全自动的相机镜头,图片导入软件以后软件会自动识别相机镜头的类型、视角、焦距等等参数。但是对于手动操作的镜头,那就需要对于镜头的视角、类型等参数进行设置。

  ③打开参数对话框下的“裁切”标签,看一下裁切劝的大小是不是合适,如果不太合适可做适当的调整。

  ④:参数调整:对三张照片的曝光参数做依次调整,数值越高亮度也越高,目前固定的范围至1——3。

  ⑤:对准图像。单击对准图像,选择启用HDR模式并链接到包围曝光图像,HDR方式为曝光融合。

  如果为出现该对话框,请检查曝光值是否设置完成,设置框请不要放置在曝光框内。

  ⑥:点击拉伸全景图

  ⑦:运行优化器,选择严重+镜头位移。点击运行优化器

  ⑧:如图所示,选择曝光/HDR 选择融合设置微调之后点击确定

  ⑨:创建全景图。有图像大小、格式、图层模式等选项可供选择。确定之后单击“创建全景图”按钮,软件会自动创建全景图片并保存到指定的文件夹

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-26
操作单个像素方法:
at(int y, int x)
cv::mat的成员函数: at(int y, int x)可以用来存取图像中对应坐标为(x,y)的元素坐标。但是在使用它时要注意,在编译期必须要已知图像的数据类型,这是因为cv::mat可以存放任意数据类型的元素。因此at方法的实现是用模板函数来实现的。
使用方法:假设提前已知一幅图像img的数据类型为 unsigned char型灰度图(单通道),要对坐标为(10,12)的像素重新赋值为128,则对应操作如下
img.at<uchar>(12,10) = 128;本回答被提问者采纳
相似回答