1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-31 08:13:04 +04:00

Merge pull request #21511 from dbudniko:dbudniko/gapi_media_format_gray

G-API media format gray
This commit is contained in:
Dmitry Budnikov
2022-02-03 15:20:21 +03:00
committed by GitHub
parent 1605d1d24d
commit 4d0148b417
7 changed files with 393 additions and 6 deletions
@@ -1701,6 +1701,25 @@ namespace {
};
};
namespace {
class TestMediaGray final : public cv::MediaFrame::IAdapter {
cv::Mat m_mat;
public:
explicit TestMediaGray(cv::Mat m)
: m_mat(m) {
}
cv::GFrameDesc meta() const override {
return cv::GFrameDesc{ cv::MediaFormat::GRAY, cv::Size(m_mat.cols, m_mat.rows) };
}
cv::MediaFrame::View access(cv::MediaFrame::Access) override {
cv::MediaFrame::View::Ptrs pp = { m_mat.ptr(), nullptr, nullptr, nullptr };
cv::MediaFrame::View::Strides ss = { m_mat.step, 0u, 0u, 0u };
return cv::MediaFrame::View(std::move(pp), std::move(ss));
}
};
};
TEST_P(SizeMFTest, ParseTest)
{
cv::Size out_sz;
@@ -1715,6 +1734,20 @@ TEST_P(SizeMFTest, ParseTest)
EXPECT_EQ(sz, out_sz);
}
TEST_P(SizeMFTest, ParseGrayTest)
{
cv::Size out_sz;
cv::Mat gray = cv::Mat::eye(sz.height, sz.width, CV_8UC1);
cv::MediaFrame frame = cv::MediaFrame::Create<TestMediaGray>(gray);
cv::GFrame in;
auto out = cv::gapi::streaming::size(in);
cv::GComputation c(cv::GIn(in), cv::GOut(out));
c.apply(cv::gin(frame), cv::gout(out_sz), getCompileArgs());
EXPECT_EQ(sz, out_sz);
}
} // opencv_test
#endif //OPENCV_GAPI_CORE_TESTS_INL_HPP