CppNCorr
C++ ncorr Digital Image Correlation engine
Loading...
Searching...
No Matches
Disp2D.cpp
Go to the documentation of this file.
1/*
2 * File: Disp2D.cpp
3 * Author: justin
4 *
5 * Created on May 12, 2015, 12:36 PM
6 */
7
8#include "Disp2D.h"
9
10namespace ncorr {
11
12// Static factory methods ----------------------------------------------------//
13Disp2D Disp2D::load(std::ifstream &is) {
14 // Form empty Disp2D then fill in values in accordance to how they are saved
15 Disp2D disp;
16
17 // Load v
18 disp.v = Data2D::load(is);
19
20 // Load u
21 disp.u = Data2D::load(is);
22
23 // Load cc (correlation coefficient)
24 disp.cc = Data2D::load(is);
25
26 return disp;
27}
28
29// Operators interface -------------------------------------------------------//
30std::ostream& operator<<(std::ostream &os, const Disp2D &disp) {
31 os << "V data: " << '\n' << disp.get_v();
32 os << '\n' << "U data: " << '\n' << disp.get_u();
33 os << '\n' << "Correlation data: " << '\n' << disp.get_cc();
34
35 return os;
36}
37
38void imshow(const Disp2D &disp, Disp2D::difference_type delay) {
39 // Just show each separately for now. If you combine into one buffer, you
40 // must scale each as their ranges might be different.
41 imshow(disp.v, delay);
42 imshow(disp.u, delay);
43 imshow(disp.cc, delay); // Also show correlation
44}
45
46bool isequal(const Disp2D &disp1, const Disp2D &disp2) {
47 return isequal(disp1.v, disp2.v) && isequal(disp1.u, disp2.u) && isequal(disp1.cc, disp2.cc);
48}
49
50void save(const Disp2D &disp, std::ofstream &os) {
51 // Save v -> u -> cc
52 save(disp.v, os);
53 save(disp.u, os);
54 save(disp.cc, os); // Save correlation coefficient
55}
56
57// Interpolator --------------------------------------------------------------//
59 return details::Disp2D_nlinfo_interpolator(*this, region_idx, interp_type);
60}
61
62}
63
static Data2D load(std::ifstream &)
Definition Data2D.cpp:33
Data2D::difference_type difference_type
Definition Disp2D.h:27
static Disp2D load(std::ifstream &)
Definition Disp2D.cpp:13
const Data2D & get_u() const
Definition Disp2D.h:65
nlinfo_interpolator get_nlinfo_interpolator(difference_type, INTERP) const
Definition Disp2D.cpp:58
details::Disp2D_nlinfo_interpolator nlinfo_interpolator
Definition Disp2D.h:29
const Data2D & get_v() const
Definition Disp2D.h:64
const Data2D & get_cc() const
Definition Disp2D.h:66
bool isequal(const Data2D &data1, const Data2D &data2)
Definition Data2D.cpp:72
void imshow(const Data2D &data, Data2D::difference_type delay)
Definition Data2D.cpp:58
void save(const Data2D &data, std::ofstream &os)
Definition Data2D.cpp:78
INTERP
Definition Array2D.h:77
std::ostream & operator<<(std::ostream &os, const Data2D &data)
Definition Data2D.cpp:50