mirror of
https://github.com/opencv/opencv.git
synced 2025-08-06 06:26:29 +08:00
Merge pull request #16077 from dmatveev:dm/gapi_narg_combine
This commit is contained in:
commit
15621532b8
@ -537,8 +537,29 @@ namespace gapi {
|
|||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
// FYI - this function is already commented above
|
||||||
GAPI_EXPORTS GKernelPackage combine(const GKernelPackage &lhs,
|
GAPI_EXPORTS GKernelPackage combine(const GKernelPackage &lhs,
|
||||||
const GKernelPackage &rhs);
|
const GKernelPackage &rhs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Combines multiple G-API kernel packages into one
|
||||||
|
*
|
||||||
|
* @overload
|
||||||
|
*
|
||||||
|
* This function successively combines the passed kernel packages using a right fold.
|
||||||
|
* Calling `combine(a, b, c)` is equal to `combine(a, combine(b, c))`.
|
||||||
|
*
|
||||||
|
* @return The resulting kernel package
|
||||||
|
*/
|
||||||
|
template<typename... Ps>
|
||||||
|
GKernelPackage combine(const GKernelPackage &a, const GKernelPackage &b, Ps&&... rest)
|
||||||
|
{
|
||||||
|
return combine(a, combine(b, rest...));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** \addtogroup gapi_compile_args
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
/**
|
/**
|
||||||
* @brief cv::use_only() is a special combinator which hints G-API to use only
|
* @brief cv::use_only() is a special combinator which hints G-API to use only
|
||||||
* kernels specified in cv::GComputation::compile() (and not to extend kernels available by
|
* kernels specified in cv::GComputation::compile() (and not to extend kernels available by
|
||||||
@ -548,6 +569,7 @@ namespace gapi {
|
|||||||
{
|
{
|
||||||
GKernelPackage pkg;
|
GKernelPackage pkg;
|
||||||
};
|
};
|
||||||
|
/** @} */
|
||||||
|
|
||||||
} // namespace gapi
|
} // namespace gapi
|
||||||
|
|
||||||
|
@ -325,6 +325,21 @@ TEST(KernelPackage, Can_Use_Custom_Kernel)
|
|||||||
compile({in_meta, in_meta}, cv::compile_args(pkg)));
|
compile({in_meta, in_meta}, cv::compile_args(pkg)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(KernelPackage, CombineMultiple)
|
||||||
|
{
|
||||||
|
namespace J = Jupiter;
|
||||||
|
namespace S = Saturn;
|
||||||
|
auto a = cv::gapi::kernels<J::Foo>();
|
||||||
|
auto b = cv::gapi::kernels<J::Bar>();
|
||||||
|
auto c = cv::gapi::kernels<S::Qux>();
|
||||||
|
auto pkg = cv::gapi::combine(a, b, c);
|
||||||
|
|
||||||
|
EXPECT_EQ(3u, pkg.size());
|
||||||
|
EXPECT_TRUE(pkg.includes<J::Foo>());
|
||||||
|
EXPECT_TRUE(pkg.includes<J::Bar>());
|
||||||
|
EXPECT_TRUE(pkg.includes<S::Qux>());
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(HeteroGraph, Call_Custom_Kernel_Default_Backend)
|
TEST_F(HeteroGraph, Call_Custom_Kernel_Default_Backend)
|
||||||
{
|
{
|
||||||
// in0 -> GCPUAdd -> tmp -> cpu::GClone -> GCPUBGR2Gray -> out
|
// in0 -> GCPUAdd -> tmp -> cpu::GClone -> GCPUBGR2Gray -> out
|
||||||
|
Loading…
Reference in New Issue
Block a user