mirror of
https://github.com/opencv/opencv.git
synced 2024-11-24 03:00:14 +08:00
Merge pull request #21040 from alexgiving:atrutnev/rename_RMatAdapter
GAPI: Rename MatAdapter to RMatOnMat
This commit is contained in:
parent
da6344297a
commit
18ca998f67
@ -45,11 +45,11 @@ namespace gimpl {
|
||||
#endif
|
||||
}
|
||||
|
||||
class RMatAdapter : public RMat::IAdapter {
|
||||
class RMatOnMat : public RMat::IAdapter {
|
||||
cv::Mat m_mat;
|
||||
public:
|
||||
const void* data() const { return m_mat.data; }
|
||||
RMatAdapter(cv::Mat m) : m_mat(m) {}
|
||||
RMatOnMat(cv::Mat m) : m_mat(m) {}
|
||||
virtual RMat::View access(RMat::Access) override { return asView(m_mat); }
|
||||
virtual cv::GMatDesc desc() const override { return cv::descr_of(m_mat); }
|
||||
};
|
||||
|
@ -128,7 +128,7 @@ static void writeBack(cv::GRunArg& arg, cv::GRunArgP& out)
|
||||
case cv::GRunArg::index_of<cv::Mat>():
|
||||
{
|
||||
auto& rmat = *cv::util::get<cv::RMat*>(out);
|
||||
rmat = cv::make_rmat<cv::gimpl::RMatAdapter>(cv::util::get<cv::Mat>(arg));
|
||||
rmat = cv::make_rmat<cv::gimpl::RMatOnMat>(cv::util::get<cv::Mat>(arg));
|
||||
break;
|
||||
}
|
||||
case cv::GRunArg::index_of<cv::Scalar>():
|
||||
|
@ -279,7 +279,7 @@ void GOCVBGR::Actor::extractRMat(const cv::MediaFrame& frame, cv::RMat& rmat)
|
||||
cv::Mat y_plane (desc.size, CV_8UC1, view.ptr[0], view.stride[0]);
|
||||
cv::Mat uv_plane(desc.size / 2, CV_8UC2, view.ptr[1], view.stride[1]);
|
||||
cv::cvtColorTwoPlane(y_plane, uv_plane, bgr, cv::COLOR_YUV2BGR_NV12);
|
||||
rmat = cv::make_rmat<cv::gimpl::RMatAdapter>(bgr);
|
||||
rmat = cv::make_rmat<cv::gimpl::RMatOnMat>(bgr);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@ -327,7 +327,7 @@ void GOCVY::Actor::extractRMat(const cv::MediaFrame& frame, cv::RMat& rmat)
|
||||
cv::Mat tmp_bgr(desc.size, CV_8UC3, view.ptr[0], view.stride[0]);
|
||||
cv::Mat yuv;
|
||||
cvtColor(tmp_bgr, yuv, cv::COLOR_BGR2YUV_I420);
|
||||
rmat = cv::make_rmat<cv::gimpl::RMatAdapter>(yuv.rowRange(0, desc.size.height));
|
||||
rmat = cv::make_rmat<cv::gimpl::RMatOnMat>(yuv.rowRange(0, desc.size.height));
|
||||
break;
|
||||
}
|
||||
case cv::MediaFormat::NV12:
|
||||
@ -396,7 +396,7 @@ void GOCVUV::Actor::extractRMat(const cv::MediaFrame& frame, cv::RMat& rmat)
|
||||
yuv.rowRange(start + range_h, start + range_h * 2).reshape(0, dims)
|
||||
};
|
||||
cv::merge(uv_planes, uv);
|
||||
rmat = cv::make_rmat<cv::gimpl::RMatAdapter>(uv);
|
||||
rmat = cv::make_rmat<cv::gimpl::RMatOnMat>(uv);
|
||||
break;
|
||||
}
|
||||
case cv::MediaFormat::NV12:
|
||||
|
@ -100,7 +100,7 @@ void bindInArgExec(Mag& mag, const RcDesc &rc, const GRunArg &arg)
|
||||
switch (arg.index())
|
||||
{
|
||||
case GRunArg::index_of<Mat>() :
|
||||
mag_rmat = make_rmat<RMatAdapter>(util::get<Mat>(arg)); break;
|
||||
mag_rmat = make_rmat<RMatOnMat>(util::get<Mat>(arg)); break;
|
||||
case GRunArg::index_of<cv::RMat>() :
|
||||
mag_rmat = util::get<cv::RMat>(arg); break;
|
||||
default: util::throw_error(std::logic_error("content type of the runtime argument does not match to resource description ?"));
|
||||
@ -121,7 +121,7 @@ void bindOutArgExec(Mag& mag, const RcDesc &rc, const GRunArgP &arg)
|
||||
switch (arg.index())
|
||||
{
|
||||
case GRunArgP::index_of<Mat*>() :
|
||||
mag_rmat = make_rmat<RMatAdapter>(*util::get<Mat*>(arg)); break;
|
||||
mag_rmat = make_rmat<RMatOnMat>(*util::get<Mat*>(arg)); break;
|
||||
case GRunArgP::index_of<cv::RMat*>() :
|
||||
mag_rmat = *util::get<cv::RMat*>(arg); break;
|
||||
default: util::throw_error(std::logic_error("content type of the runtime argument does not match to resource description ?"));
|
||||
@ -155,12 +155,11 @@ void writeBackExec(const Mag& mag, const RcDesc &rc, GRunArgP &g_arg)
|
||||
// FIXME:
|
||||
// Rework, find a better way to check if there should be
|
||||
// a real copy (add a pass to StreamingBackend?)
|
||||
// NB: In case RMat adapter not equal to "RMatAdapter" need to
|
||||
// NB: In case RMat adapter not equal to "RMatOnMat" need to
|
||||
// copy data back to the host as well.
|
||||
// FIXME: Rename "RMatAdapter" to "OpenCVAdapter".
|
||||
auto& out_mat = *util::get<cv::Mat*>(g_arg);
|
||||
const auto& rmat = mag.template slot<cv::RMat>().at(rc.id);
|
||||
auto* adapter = rmat.get<RMatAdapter>();
|
||||
auto* adapter = rmat.get<RMatOnMat>();
|
||||
if ((adapter != nullptr && out_mat.data != adapter->data()) ||
|
||||
(adapter == nullptr)) {
|
||||
auto view = rmat.access(RMat::Access::R);
|
||||
@ -221,7 +220,7 @@ void cv::gimpl::GExecutor::initResource(const ade::NodeHandle & nh, const ade::N
|
||||
} else {
|
||||
Mat mat;
|
||||
createMat(desc, mat);
|
||||
rmat = make_rmat<RMatAdapter>(mat);
|
||||
rmat = make_rmat<RMatOnMat>(mat);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -662,7 +662,7 @@ class StreamingInput final: public cv::gimpl::GIslandExecutable::IInput
|
||||
// Wrap all input cv::Mats with RMats
|
||||
for (auto& arg : isl_input_args) {
|
||||
if (arg.index() == cv::GRunArg::index_of<cv::Mat>()) {
|
||||
arg = cv::GRunArg{ cv::make_rmat<cv::gimpl::RMatAdapter>(cv::util::get<cv::Mat>(arg))
|
||||
arg = cv::GRunArg{ cv::make_rmat<cv::gimpl::RMatOnMat>(cv::util::get<cv::Mat>(arg))
|
||||
, arg.meta
|
||||
};
|
||||
}
|
||||
@ -745,7 +745,7 @@ class StreamingOutput final: public cv::gimpl::GIslandExecutable::IOutput
|
||||
{
|
||||
MatType newMat;
|
||||
cv::gimpl::createMat(desc, newMat);
|
||||
auto rmat = cv::make_rmat<cv::gimpl::RMatAdapter>(newMat);
|
||||
auto rmat = cv::make_rmat<cv::gimpl::RMatOnMat>(newMat);
|
||||
out_arg = cv::GRunArg(std::move(rmat));
|
||||
}
|
||||
ret_val = cv::GRunArgP(&cv::util::get<cv::RMat>(out_arg));
|
||||
|
Loading…
Reference in New Issue
Block a user