~siretart/ubuntu/utopic/blender/libav10

« back to all changes in this revision

Viewing changes to extern/libmv/libmv/image/correlation.h

  • Committer: Package Import Robot
  • Author(s): Matteo F. Vescovi
  • Date: 2012-07-23 08:54:18 UTC
  • mfrom: (14.2.16 sid)
  • mto: (14.2.19 sid)
  • mto: This revision was merged to the branch mainline in revision 42.
  • Revision ID: package-import@ubuntu.com-20120723085418-9foz30v6afaf5ffs
Tags: 2.63a-2
* debian/: Cycles support added (Closes: #658075)
  For now, this top feature has been enabled only
  on [any-amd64 any-i386] architectures because
  of OpenImageIO failing on all others
* debian/: scripts installation path changed
  from /usr/lib to /usr/share:
  + debian/patches/: patchset re-worked for path changing
  + debian/control: "Breaks" field added on yafaray-exporter

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright (c) 2012 libmv authors.
 
2
//
 
3
// Permission is hereby granted, free of charge, to any person obtaining a copy
 
4
// of this software and associated documentation files (the "Software"), to
 
5
// deal in the Software without restriction, including without limitation the
 
6
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 
7
// sell copies of the Software, and to permit persons to whom the Software is
 
8
// furnished to do so, subject to the following conditions:
 
9
//
 
10
// The above copyright notice and this permission notice shall be included in
 
11
// all copies or substantial portions of the Software.
 
12
//
 
13
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 
14
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 
15
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 
16
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 
17
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 
18
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 
19
// IN THE SOFTWARE.
 
20
 
 
21
#ifndef LIBMV_IMAGE_CORRELATION_H
 
22
#define LIBMV_IMAGE_CORRELATION_H
 
23
 
 
24
#include "libmv/image/image.h"
 
25
 
 
26
namespace libmv {
 
27
 
 
28
inline double PearsonProductMomentCorrelation(Array3Df image_and_gradient1_sampled,
 
29
                                              Array3Df image_and_gradient2_sampled,
 
30
                                              int width) {
 
31
  double sX=0,sY=0,sXX=0,sYY=0,sXY=0;
 
32
  for (int r = 0; r < width; ++r) {
 
33
    for (int c = 0; c < width; ++c) {
 
34
      double x = image_and_gradient1_sampled(r, c, 0);
 
35
      double y = image_and_gradient2_sampled(r, c, 0);
 
36
      sX += x;
 
37
      sY += y;
 
38
      sXX += x*x;
 
39
      sYY += y*y;
 
40
      sXY += x*y;
 
41
    }
 
42
  }
 
43
  double N = width*width;
 
44
  sX /= N, sY /= N, sXX /= N, sYY /= N, sXY /= N;
 
45
  double correlation = (sXY-sX*sY)/sqrt(double((sXX-sX*sX)*(sYY-sY*sY)));
 
46
  return correlation;
 
47
}
 
48
 
 
49
}  // namespace libmv
 
50
 
 
51
#endif  // LIBMV_IMAGE_IMAGE_CORRELATION_H