Skip to content

Commit b962353

Browse files
author
Nan Yang
committed
first commit. Added photometric calibration class and a dummy function
1 parent 09b73b2 commit b962353

File tree

5 files changed

+214
-0
lines changed

5 files changed

+214
-0
lines changed

modules/pcalib/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
set(the_description "Photometric Calibration")
2+
ocv_define_module(pcalib opencv_core opencv_imgproc opencv_calib3d opencv_features2d opencv_highgui WRAP python)

modules/pcalib/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Photometric Calibration
2+
================================================
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*M///////////////////////////////////////////////////////////////////////////////////////
2+
//
3+
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4+
//
5+
// By downloading, copying, installing or using the software you agree to this license.
6+
// If you do not agree to this license, do not download, install,
7+
// copy or use the software.
8+
//
9+
//
10+
// License Agreement
11+
// For Open Source Computer Vision Library
12+
//
13+
// Copyright (C) 2014, OpenCV Foundation, all rights reserved.
14+
// Third party copyrights are property of their respective owners.
15+
//
16+
// Redistribution and use in source and binary forms, with or without modification,
17+
// are permitted provided that the following conditions are met:
18+
//
19+
// * Redistribution's of source code must retain the above copyright notice,
20+
// this list of conditions and the following disclaimer.
21+
//
22+
// * Redistribution's in binary form must reproduce the above copyright notice,
23+
// this list of conditions and the following disclaimer in the documentation
24+
// and/or other materials provided with the distribution.
25+
//
26+
// * The name of the copyright holders may not be used to endorse or promote products
27+
// derived from this software without specific prior written permission.
28+
//
29+
// This software is provided by the copyright holders and contributors "as is" and
30+
// any express or implied warranties, including, but not limited to, the implied
31+
// warranties of merchantability and fitness for a particular purpose are disclaimed.
32+
// In no event shall the Intel Corporation or contributors be liable for any direct,
33+
// indirect, incidental, special, exemplary, or consequential damages
34+
// (including, but not limited to, procurement of substitute goods or services;
35+
// loss of use, data, or profits; or business interruption) however caused
36+
// and on any theory of liability, whether in contract, strict liability,
37+
// or tort (including negligence or otherwise) arising in any way out of
38+
// the use of this software, even if advised of the possibility of such damage.
39+
//
40+
//M*/
41+
42+
#ifndef __OPENCV_PCALIB_HPP__
43+
#define __OPENCV_PCALIB_HPP__
44+
45+
#include <opencv2/core.hpp>
46+
#include <opencv2/features2d.hpp>
47+
#include <opencv2/imgproc.hpp>
48+
49+
#include <vector>
50+
51+
namespace cv{ namespace pcalib{
52+
53+
//! @addtogroup pcalib
54+
//! @{
55+
56+
class CV_EXPORTS PhotometricCalibrator : public Algorithm
57+
{
58+
public:
59+
bool validImgs(std::vector <Mat> &inputImgs, std::vector<double> &exposureTime);
60+
};
61+
62+
//! @}
63+
64+
}} // namespace pcalib, cv
65+
66+
#endif

modules/pcalib/src/pcalib.cpp

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
/*M///////////////////////////////////////////////////////////////////////////////////////
2+
//
3+
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4+
//
5+
// By downloading, copying, installing or using the software you agree to this license.
6+
// If you do not agree to this license, do not download, install,
7+
// copy or use the software.
8+
//
9+
//
10+
// License Agreement
11+
// For Open Source Computer Vision Library
12+
//
13+
// Copyright (C) 2014, OpenCV Foundation, all rights reserved.
14+
// Third party copyrights are property of their respective owners.
15+
//
16+
// Redistribution and use in source and binary forms, with or without modification,
17+
// are permitted provided that the following conditions are met:
18+
//
19+
// * Redistribution's of source code must retain the above copyright notice,
20+
// this list of conditions and the following disclaimer.
21+
//
22+
// * Redistribution's in binary form must reproduce the above copyright notice,
23+
// this list of conditions and the following disclaimer in the documentation
24+
// and/or other materials provided with the distribution.
25+
//
26+
// * The name of the copyright holders may not be used to endorse or promote products
27+
// derived from this software without specific prior written permission.
28+
//
29+
// This software is provided by the copyright holders and contributors "as is" and
30+
// any express or implied warranties, including, but not limited to, the implied
31+
// warranties of merchantability and fitness for a particular purpose are disclaimed.
32+
// In no event shall the Intel Corporation or contributors be liable for any direct,
33+
// indirect, incidental, special, exemplary, or consequential damages
34+
// (including, but not limited to, procurement of substitute goods or services;
35+
// loss of use, data, or profits; or business interruption) however caused
36+
// and on any theory of liability, whether in contract, strict liability,
37+
// or tort (including negligence or otherwise) arising in any way out of
38+
// the use of this software, even if advised of the possibility of such damage.
39+
//
40+
//M*/
41+
42+
#ifndef __OPENCV_PCALIB_CPP__
43+
#define __OPENCV_PCALIB_CPP__
44+
#ifdef __cplusplus
45+
46+
#include "precomp.hpp"
47+
#include "opencv2/pcalib.hpp"
48+
49+
#include <opencv2/core.hpp>
50+
51+
#include <vector>
52+
#include <iostream>
53+
54+
namespace cv{ namespace pcalib{
55+
56+
using namespace std;
57+
58+
bool PhotometricCalibrator::validImgs(std::vector <Mat> &inputImgs, std::vector<double> &exposureTime)
59+
{
60+
if(inputImgs.empty() || exposureTime.empty() || inputImgs.size() != exposureTime.size())
61+
return false;
62+
63+
int width, height = 0;
64+
for(size_t i = 0; i < inputImgs.size(); ++ i)
65+
{
66+
Mat img;
67+
img = inputImgs[i];
68+
if(img.type() != CV_8U)
69+
{
70+
cout<<"The type of the image should be CV_8U!"<<endl;
71+
return false;
72+
}
73+
if((width!=0 && width != img.cols) || img.cols==0)
74+
{
75+
cout<<"Width mismatch!"<<endl;
76+
return false;
77+
};
78+
if((height!=0 && height != img.rows) || img.rows==0)
79+
{
80+
cout<<"Height mismatch!"<<endl;
81+
return false;
82+
};
83+
width = img.cols;
84+
height = img.rows;
85+
}
86+
return true;
87+
}
88+
89+
}} // namespace pcalib, cv
90+
91+
#endif // __OPENCV_PCALIB_CPP__
92+
#endif // cplusplus
93+

modules/pcalib/src/precomp.hpp

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*M///////////////////////////////////////////////////////////////////////////////////////
2+
//
3+
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4+
//
5+
// By downloading, copying, installing or using the software you agree to this license.
6+
// If you do not agree to this license, do not download, install,
7+
// copy or use the software.
8+
//
9+
//
10+
// License Agreement
11+
// For Open Source Computer Vision Library
12+
//
13+
// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14+
// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15+
// Third party copyrights are property of their respective owners.
16+
//
17+
// Redistribution and use in source and binary forms, with or without modification,
18+
// are permitted provided that the following conditions are met:
19+
//
20+
// * Redistribution's of source code must retain the above copyright notice,
21+
// this list of conditions and the following disclaimer.
22+
//
23+
// * Redistribution's in binary form must reproduce the above copyright notice,
24+
// this list of conditions and the following disclaimer in the documentation
25+
// and/or other materials provided with the distribution.
26+
//
27+
// * The name of the copyright holders may not be used to endorse or promote products
28+
// derived from this software without specific prior written permission.
29+
//
30+
// This software is provided by the copyright holders and contributors "as is" and
31+
// any express or implied warranties, including, but not limited to, the implied
32+
// warranties of merchantability and fitness for a particular purpose are disclaimed.
33+
// In no event shall the Intel Corporation or contributors be liable for any direct,
34+
// indirect, incidental, special, exemplary, or consequential damages
35+
// (including, but not limited to, procurement of substitute goods or services;
36+
// loss of use, data, or profits; or business interruption) however caused
37+
// and on any theory of liability, whether in contract, strict liability,
38+
// or tort (including negligence or otherwise) arising in any way out of
39+
// the use of this software, even if advised of the possibility of such damage.
40+
//
41+
//M*/
42+
43+
#ifndef __OPENCV_PRECOMP_H__
44+
#define __OPENCV_PRECOMP_H__
45+
46+
#include <opencv2/core.hpp>
47+
#include "opencv2/imgproc.hpp"
48+
#include "opencv2/highgui.hpp"
49+
#include "opencv2/video/tracking.hpp"
50+
#include <vector>
51+
#endif

0 commit comments

Comments
 (0)