Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
f2afe645
Commit
f2afe645
authored
Jun 17, 2013
by
Alex Leontiev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Starting implement simplex algorithm.
parent
47ce461d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
47 additions
and
617 deletions
+47
-617
CMakeLists.txt
modules/optim/CMakeLists.txt
+2
-2
arrays.hpp
modules/optim/src/arrays.hpp
+0
-161
denoising.cpp
modules/optim/src/denoising.cpp
+0
-242
fast_nlmeans_denoising_invoker.hpp
modules/optim/src/fast_nlmeans_denoising_invoker.hpp
+0
-0
fast_nlmeans_denoising_invoker_commons.hpp
modules/optim/src/fast_nlmeans_denoising_invoker_commons.hpp
+0
-115
fast_nlmeans_multi_denoising_invoker.hpp
modules/optim/src/fast_nlmeans_multi_denoising_invoker.hpp
+0
-0
inpaint.cpp
modules/optim/src/inpaint.cpp
+0
-0
lpsolver.cpp
modules/optim/src/lpsolver.cpp
+45
-0
precomp.cpp
modules/optim/src/precomp.cpp
+0
-44
precomp.hpp
modules/optim/src/precomp.hpp
+0
-53
No files found.
modules/optim/CMakeLists.txt
View file @
f2afe645
set
(
the_description
"
Computational Photography
"
)
ocv_define_module
(
photo opencv_imgproc
)
set
(
the_description
"
Generic optimization
"
)
ocv_define_module
(
optim
)
modules/optim/src/arrays.hpp
deleted
100644 → 0
View file @
47ce461d
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// Intel License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective icvers.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of Intel Corporation may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#ifndef __OPENCV_DENOISING_ARRAYS_HPP__
#define __OPENCV_DENOISING_ARRAYS_HPP__
template
<
class
T
>
struct
Array2d
{
T
*
a
;
int
n1
,
n2
;
bool
needToDeallocArray
;
Array2d
(
const
Array2d
&
array2d
)
:
a
(
array2d
.
a
),
n1
(
array2d
.
n1
),
n2
(
array2d
.
n2
),
needToDeallocArray
(
false
)
{
if
(
array2d
.
needToDeallocArray
)
{
// copy constructor for self allocating arrays not supported
throw
new
std
::
exception
();
}
}
Array2d
(
T
*
_a
,
int
_n1
,
int
_n2
)
:
a
(
_a
),
n1
(
_n1
),
n2
(
_n2
),
needToDeallocArray
(
false
)
{}
Array2d
(
int
_n1
,
int
_n2
)
:
n1
(
_n1
),
n2
(
_n2
),
needToDeallocArray
(
true
)
{
a
=
new
T
[
n1
*
n2
];
}
~
Array2d
()
{
if
(
needToDeallocArray
)
{
delete
[]
a
;
}
}
T
*
operator
[]
(
int
i
)
{
return
a
+
i
*
n2
;
}
inline
T
*
row_ptr
(
int
i
)
{
return
(
*
this
)[
i
];
}
};
template
<
class
T
>
struct
Array3d
{
T
*
a
;
int
n1
,
n2
,
n3
;
bool
needToDeallocArray
;
Array3d
(
T
*
_a
,
int
_n1
,
int
_n2
,
int
_n3
)
:
a
(
_a
),
n1
(
_n1
),
n2
(
_n2
),
n3
(
_n3
),
needToDeallocArray
(
false
)
{}
Array3d
(
int
_n1
,
int
_n2
,
int
_n3
)
:
n1
(
_n1
),
n2
(
_n2
),
n3
(
_n3
),
needToDeallocArray
(
true
)
{
a
=
new
T
[
n1
*
n2
*
n3
];
}
~
Array3d
()
{
if
(
needToDeallocArray
)
{
delete
[]
a
;
}
}
Array2d
<
T
>
operator
[]
(
int
i
)
{
Array2d
<
T
>
array2d
(
a
+
i
*
n2
*
n3
,
n2
,
n3
);
return
array2d
;
}
inline
T
*
row_ptr
(
int
i1
,
int
i2
)
{
return
a
+
i1
*
n2
*
n3
+
i2
*
n3
;
}
};
template
<
class
T
>
struct
Array4d
{
T
*
a
;
int
n1
,
n2
,
n3
,
n4
;
bool
needToDeallocArray
;
int
steps
[
4
];
void
init_steps
()
{
steps
[
0
]
=
n2
*
n3
*
n4
;
steps
[
1
]
=
n3
*
n4
;
steps
[
2
]
=
n4
;
steps
[
3
]
=
1
;
}
Array4d
(
T
*
_a
,
int
_n1
,
int
_n2
,
int
_n3
,
int
_n4
)
:
a
(
_a
),
n1
(
_n1
),
n2
(
_n2
),
n3
(
_n3
),
n4
(
_n4
),
needToDeallocArray
(
false
)
{
init_steps
();
}
Array4d
(
int
_n1
,
int
_n2
,
int
_n3
,
int
_n4
)
:
n1
(
_n1
),
n2
(
_n2
),
n3
(
_n3
),
n4
(
_n4
),
needToDeallocArray
(
true
)
{
a
=
new
T
[
n1
*
n2
*
n3
*
n4
];
init_steps
();
}
~
Array4d
()
{
if
(
needToDeallocArray
)
{
delete
[]
a
;
}
}
Array3d
<
T
>
operator
[]
(
int
i
)
{
Array3d
<
T
>
array3d
(
a
+
i
*
n2
*
n3
*
n4
,
n2
,
n3
,
n4
);
return
array3d
;
}
inline
T
*
row_ptr
(
int
i1
,
int
i2
,
int
i3
)
{
return
a
+
i1
*
n2
*
n3
*
n4
+
i2
*
n3
*
n4
+
i3
*
n4
;
}
inline
int
step_size
(
int
dimension
)
{
return
steps
[
dimension
];
}
};
#endif
modules/optim/src/denoising.cpp
deleted
100644 → 0
View file @
47ce461d
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// Intel License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective icvers.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of Intel Corporation may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#include "precomp.hpp"
#include "opencv2/photo.hpp"
#include "opencv2/imgproc.hpp"
#include "fast_nlmeans_denoising_invoker.hpp"
#include "fast_nlmeans_multi_denoising_invoker.hpp"
void
cv
::
fastNlMeansDenoising
(
InputArray
_src
,
OutputArray
_dst
,
float
h
,
int
templateWindowSize
,
int
searchWindowSize
)
{
Mat
src
=
_src
.
getMat
();
_dst
.
create
(
src
.
size
(),
src
.
type
());
Mat
dst
=
_dst
.
getMat
();
#ifdef HAVE_TEGRA_OPTIMIZATION
if
(
tegra
::
fastNlMeansDenoising
(
src
,
dst
,
h
,
templateWindowSize
,
searchWindowSize
))
return
;
#endif
switch
(
src
.
type
())
{
case
CV_8U
:
parallel_for
(
cv
::
BlockedRange
(
0
,
src
.
rows
),
FastNlMeansDenoisingInvoker
<
uchar
>
(
src
,
dst
,
templateWindowSize
,
searchWindowSize
,
h
));
break
;
case
CV_8UC2
:
parallel_for
(
cv
::
BlockedRange
(
0
,
src
.
rows
),
FastNlMeansDenoisingInvoker
<
cv
::
Vec2b
>
(
src
,
dst
,
templateWindowSize
,
searchWindowSize
,
h
));
break
;
case
CV_8UC3
:
parallel_for
(
cv
::
BlockedRange
(
0
,
src
.
rows
),
FastNlMeansDenoisingInvoker
<
cv
::
Vec3b
>
(
src
,
dst
,
templateWindowSize
,
searchWindowSize
,
h
));
break
;
default
:
CV_Error
(
Error
::
StsBadArg
,
"Unsupported image format! Only CV_8UC1, CV_8UC2 and CV_8UC3 are supported"
);
}
}
void
cv
::
fastNlMeansDenoisingColored
(
InputArray
_src
,
OutputArray
_dst
,
float
h
,
float
hForColorComponents
,
int
templateWindowSize
,
int
searchWindowSize
)
{
Mat
src
=
_src
.
getMat
();
_dst
.
create
(
src
.
size
(),
src
.
type
());
Mat
dst
=
_dst
.
getMat
();
if
(
src
.
type
()
!=
CV_8UC3
)
{
CV_Error
(
Error
::
StsBadArg
,
"Type of input image should be CV_8UC3!"
);
return
;
}
Mat
src_lab
;
cvtColor
(
src
,
src_lab
,
COLOR_LBGR2Lab
);
Mat
l
(
src
.
size
(),
CV_8U
);
Mat
ab
(
src
.
size
(),
CV_8UC2
);
Mat
l_ab
[]
=
{
l
,
ab
};
int
from_to
[]
=
{
0
,
0
,
1
,
1
,
2
,
2
};
mixChannels
(
&
src_lab
,
1
,
l_ab
,
2
,
from_to
,
3
);
fastNlMeansDenoising
(
l
,
l
,
h
,
templateWindowSize
,
searchWindowSize
);
fastNlMeansDenoising
(
ab
,
ab
,
hForColorComponents
,
templateWindowSize
,
searchWindowSize
);
Mat
l_ab_denoised
[]
=
{
l
,
ab
};
Mat
dst_lab
(
src
.
size
(),
src
.
type
());
mixChannels
(
l_ab_denoised
,
2
,
&
dst_lab
,
1
,
from_to
,
3
);
cvtColor
(
dst_lab
,
dst
,
COLOR_Lab2LBGR
);
}
static
void
fastNlMeansDenoisingMultiCheckPreconditions
(
const
std
::
vector
<
Mat
>&
srcImgs
,
int
imgToDenoiseIndex
,
int
temporalWindowSize
,
int
templateWindowSize
,
int
searchWindowSize
)
{
int
src_imgs_size
=
(
int
)
srcImgs
.
size
();
if
(
src_imgs_size
==
0
)
{
CV_Error
(
Error
::
StsBadArg
,
"Input images vector should not be empty!"
);
}
if
(
temporalWindowSize
%
2
==
0
||
searchWindowSize
%
2
==
0
||
templateWindowSize
%
2
==
0
)
{
CV_Error
(
Error
::
StsBadArg
,
"All windows sizes should be odd!"
);
}
int
temporalWindowHalfSize
=
temporalWindowSize
/
2
;
if
(
imgToDenoiseIndex
-
temporalWindowHalfSize
<
0
||
imgToDenoiseIndex
+
temporalWindowHalfSize
>=
src_imgs_size
)
{
CV_Error
(
Error
::
StsBadArg
,
"imgToDenoiseIndex and temporalWindowSize "
"should be choosen corresponding srcImgs size!"
);
}
for
(
int
i
=
1
;
i
<
src_imgs_size
;
i
++
)
{
if
(
srcImgs
[
0
].
size
()
!=
srcImgs
[
i
].
size
()
||
srcImgs
[
0
].
type
()
!=
srcImgs
[
i
].
type
())
{
CV_Error
(
Error
::
StsBadArg
,
"Input images should have the same size and type!"
);
}
}
}
void
cv
::
fastNlMeansDenoisingMulti
(
InputArrayOfArrays
_srcImgs
,
OutputArray
_dst
,
int
imgToDenoiseIndex
,
int
temporalWindowSize
,
float
h
,
int
templateWindowSize
,
int
searchWindowSize
)
{
std
::
vector
<
Mat
>
srcImgs
;
_srcImgs
.
getMatVector
(
srcImgs
);
fastNlMeansDenoisingMultiCheckPreconditions
(
srcImgs
,
imgToDenoiseIndex
,
temporalWindowSize
,
templateWindowSize
,
searchWindowSize
);
_dst
.
create
(
srcImgs
[
0
].
size
(),
srcImgs
[
0
].
type
());
Mat
dst
=
_dst
.
getMat
();
switch
(
srcImgs
[
0
].
type
())
{
case
CV_8U
:
parallel_for
(
cv
::
BlockedRange
(
0
,
srcImgs
[
0
].
rows
),
FastNlMeansMultiDenoisingInvoker
<
uchar
>
(
srcImgs
,
imgToDenoiseIndex
,
temporalWindowSize
,
dst
,
templateWindowSize
,
searchWindowSize
,
h
));
break
;
case
CV_8UC2
:
parallel_for
(
cv
::
BlockedRange
(
0
,
srcImgs
[
0
].
rows
),
FastNlMeansMultiDenoisingInvoker
<
cv
::
Vec2b
>
(
srcImgs
,
imgToDenoiseIndex
,
temporalWindowSize
,
dst
,
templateWindowSize
,
searchWindowSize
,
h
));
break
;
case
CV_8UC3
:
parallel_for
(
cv
::
BlockedRange
(
0
,
srcImgs
[
0
].
rows
),
FastNlMeansMultiDenoisingInvoker
<
cv
::
Vec3b
>
(
srcImgs
,
imgToDenoiseIndex
,
temporalWindowSize
,
dst
,
templateWindowSize
,
searchWindowSize
,
h
));
break
;
default
:
CV_Error
(
Error
::
StsBadArg
,
"Unsupported matrix format! Only uchar, Vec2b, Vec3b are supported"
);
}
}
void
cv
::
fastNlMeansDenoisingColoredMulti
(
InputArrayOfArrays
_srcImgs
,
OutputArray
_dst
,
int
imgToDenoiseIndex
,
int
temporalWindowSize
,
float
h
,
float
hForColorComponents
,
int
templateWindowSize
,
int
searchWindowSize
)
{
std
::
vector
<
Mat
>
srcImgs
;
_srcImgs
.
getMatVector
(
srcImgs
);
fastNlMeansDenoisingMultiCheckPreconditions
(
srcImgs
,
imgToDenoiseIndex
,
temporalWindowSize
,
templateWindowSize
,
searchWindowSize
);
_dst
.
create
(
srcImgs
[
0
].
size
(),
srcImgs
[
0
].
type
());
Mat
dst
=
_dst
.
getMat
();
int
src_imgs_size
=
(
int
)
srcImgs
.
size
();
if
(
srcImgs
[
0
].
type
()
!=
CV_8UC3
)
{
CV_Error
(
Error
::
StsBadArg
,
"Type of input images should be CV_8UC3!"
);
return
;
}
int
from_to
[]
=
{
0
,
0
,
1
,
1
,
2
,
2
};
// TODO convert only required images
std
::
vector
<
Mat
>
src_lab
(
src_imgs_size
);
std
::
vector
<
Mat
>
l
(
src_imgs_size
);
std
::
vector
<
Mat
>
ab
(
src_imgs_size
);
for
(
int
i
=
0
;
i
<
src_imgs_size
;
i
++
)
{
src_lab
[
i
]
=
Mat
::
zeros
(
srcImgs
[
0
].
size
(),
CV_8UC3
);
l
[
i
]
=
Mat
::
zeros
(
srcImgs
[
0
].
size
(),
CV_8UC1
);
ab
[
i
]
=
Mat
::
zeros
(
srcImgs
[
0
].
size
(),
CV_8UC2
);
cvtColor
(
srcImgs
[
i
],
src_lab
[
i
],
COLOR_LBGR2Lab
);
Mat
l_ab
[]
=
{
l
[
i
],
ab
[
i
]
};
mixChannels
(
&
src_lab
[
i
],
1
,
l_ab
,
2
,
from_to
,
3
);
}
Mat
dst_l
;
Mat
dst_ab
;
fastNlMeansDenoisingMulti
(
l
,
dst_l
,
imgToDenoiseIndex
,
temporalWindowSize
,
h
,
templateWindowSize
,
searchWindowSize
);
fastNlMeansDenoisingMulti
(
ab
,
dst_ab
,
imgToDenoiseIndex
,
temporalWindowSize
,
hForColorComponents
,
templateWindowSize
,
searchWindowSize
);
Mat
l_ab_denoised
[]
=
{
dst_l
,
dst_ab
};
Mat
dst_lab
(
srcImgs
[
0
].
size
(),
srcImgs
[
0
].
type
());
mixChannels
(
l_ab_denoised
,
2
,
&
dst_lab
,
1
,
from_to
,
3
);
cvtColor
(
dst_lab
,
dst
,
COLOR_Lab2LBGR
);
}
modules/optim/src/fast_nlmeans_denoising_invoker.hpp
deleted
100644 → 0
View file @
47ce461d
This diff is collapsed.
Click to expand it.
modules/optim/src/fast_nlmeans_denoising_invoker_commons.hpp
deleted
100644 → 0
View file @
47ce461d
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// Intel License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective icvers.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of Intel Corporation may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#ifndef __OPENCV_FAST_NLMEANS_DENOISING_INVOKER_COMMONS_HPP__
#define __OPENCV_FAST_NLMEANS_DENOISING_INVOKER_COMMONS_HPP__
using
namespace
cv
;
template
<
typename
T
>
static
inline
int
calcDist
(
const
T
a
,
const
T
b
);
template
<>
inline
int
calcDist
(
const
uchar
a
,
const
uchar
b
)
{
return
(
a
-
b
)
*
(
a
-
b
);
}
template
<>
inline
int
calcDist
(
const
Vec2b
a
,
const
Vec2b
b
)
{
return
(
a
[
0
]
-
b
[
0
])
*
(
a
[
0
]
-
b
[
0
])
+
(
a
[
1
]
-
b
[
1
])
*
(
a
[
1
]
-
b
[
1
]);
}
template
<>
inline
int
calcDist
(
const
Vec3b
a
,
const
Vec3b
b
)
{
return
(
a
[
0
]
-
b
[
0
])
*
(
a
[
0
]
-
b
[
0
])
+
(
a
[
1
]
-
b
[
1
])
*
(
a
[
1
]
-
b
[
1
])
+
(
a
[
2
]
-
b
[
2
])
*
(
a
[
2
]
-
b
[
2
]);
}
template
<
typename
T
>
static
inline
int
calcDist
(
const
Mat
&
m
,
int
i1
,
int
j1
,
int
i2
,
int
j2
)
{
const
T
a
=
m
.
at
<
T
>
(
i1
,
j1
);
const
T
b
=
m
.
at
<
T
>
(
i2
,
j2
);
return
calcDist
<
T
>
(
a
,
b
);
}
template
<
typename
T
>
static
inline
int
calcUpDownDist
(
T
a_up
,
T
a_down
,
T
b_up
,
T
b_down
)
{
return
calcDist
(
a_down
,
b_down
)
-
calcDist
(
a_up
,
b_up
);
}
template
<>
inline
int
calcUpDownDist
(
uchar
a_up
,
uchar
a_down
,
uchar
b_up
,
uchar
b_down
)
{
int
A
=
a_down
-
b_down
;
int
B
=
a_up
-
b_up
;
return
(
A
-
B
)
*
(
A
+
B
);
}
template
<
typename
T
>
static
inline
void
incWithWeight
(
int
*
estimation
,
int
weight
,
T
p
);
template
<>
inline
void
incWithWeight
(
int
*
estimation
,
int
weight
,
uchar
p
)
{
estimation
[
0
]
+=
weight
*
p
;
}
template
<>
inline
void
incWithWeight
(
int
*
estimation
,
int
weight
,
Vec2b
p
)
{
estimation
[
0
]
+=
weight
*
p
[
0
];
estimation
[
1
]
+=
weight
*
p
[
1
];
}
template
<>
inline
void
incWithWeight
(
int
*
estimation
,
int
weight
,
Vec3b
p
)
{
estimation
[
0
]
+=
weight
*
p
[
0
];
estimation
[
1
]
+=
weight
*
p
[
1
];
estimation
[
2
]
+=
weight
*
p
[
2
];
}
template
<
typename
T
>
static
inline
T
saturateCastFromArray
(
int
*
estimation
);
template
<>
inline
uchar
saturateCastFromArray
(
int
*
estimation
)
{
return
saturate_cast
<
uchar
>
(
estimation
[
0
]);
}
template
<>
inline
Vec2b
saturateCastFromArray
(
int
*
estimation
)
{
Vec2b
res
;
res
[
0
]
=
saturate_cast
<
uchar
>
(
estimation
[
0
]);
res
[
1
]
=
saturate_cast
<
uchar
>
(
estimation
[
1
]);
return
res
;
}
template
<>
inline
Vec3b
saturateCastFromArray
(
int
*
estimation
)
{
Vec3b
res
;
res
[
0
]
=
saturate_cast
<
uchar
>
(
estimation
[
0
]);
res
[
1
]
=
saturate_cast
<
uchar
>
(
estimation
[
1
]);
res
[
2
]
=
saturate_cast
<
uchar
>
(
estimation
[
2
]);
return
res
;
}
#endif
modules/optim/src/fast_nlmeans_multi_denoising_invoker.hpp
deleted
100644 → 0
View file @
47ce461d
This diff is collapsed.
Click to expand it.
modules/optim/src/inpaint.cpp
deleted
100644 → 0
View file @
47ce461d
This diff is collapsed.
Click to expand it.
modules/optim/src/lpsolver.cpp
0 → 100644
View file @
f2afe645
#include "opencv2/opencv.hpp"
namespace
cv
{
namespace
optim
{
class
Solver
:
public
Algorithm
/* Algorithm is base OpenCV class */
{
class
Function
{
public
:
virtual
~
Function
()
{}
virtual
double
calc
(
InputArray
args
)
const
=
0
;
virtual
double
calc
(
InputArgs
,
OutputArray
grad
)
const
=
0
;
};
// could be reused for all the generic algorithms like downhill simplex.
virtual
void
solve
(
InputArray
x0
,
OutputArray
result
)
const
=
0
;
virtual
void
setTermCriteria
(
const
TermCriteria
&
criteria
)
=
0
;
virtual
TermCriteria
getTermCriteria
()
=
0
;
// more detailed API to be defined later ...
};
class
LPSolver
:
public
Solver
{
public
:
virtual
void
solve
(
InputArray
coeffs
,
InputArray
constraints
,
OutputArray
result
)
const
=
0
;
// ...
};
Ptr
<
LPSolver
>
createLPSimplexSolver
();
}}
/*===============
Hill climbing solver is more generic one:*/
/*
class DownhillSolver : public Solver
{
public:
// various setters and getters, if needed
};
Ptr<DownhillSolver> createDownhillSolver(const Ptr<Solver::Function>& func);*/
modules/optim/src/precomp.cpp
deleted
100644 → 0
View file @
47ce461d
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// Intel License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of Intel Corporation may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#include "precomp.hpp"
/* End of file. */
modules/optim/src/precomp.hpp
deleted
100644 → 0
View file @
47ce461d
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of the copyright holders may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#ifndef __OPENCV_PRECOMP_H__
#define __OPENCV_PRECOMP_H__
#include "opencv2/photo.hpp"
#include "opencv2/core/private.hpp"
#ifdef HAVE_TEGRA_OPTIMIZATION
#include "opencv2/photo/photo_tegra.hpp"
#endif
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment