mirror of
https://github.com/opencv/opencv_contrib.git
synced 2025-10-22 16:08:41 +08:00

Migrate G-API module from main repo to opencv_contrib #3827 Related to https://github.com/opencv/opencv/pull/26469 Required https://github.com/opencv/opencv/pull/26527 CI: https://github.com/opencv/ci-gha-workflow/pull/201 TODO: - [x] Python types generator fix - [x] CI update ### Pull Request Readiness Checklist See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request - [x] I agree to contribute to the project under Apache 2 License. - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [ ] The PR is proposed to the proper branch - [ ] There is a reference to the original bug report and related work - [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable Patch to opencv_extra has the same branch name. - [ ] The feature is well documented and sample code can be built with the project CMake
35 lines
998 B
C++
35 lines
998 B
C++
#include <opencv2/videoio.hpp>
|
|
#include <opencv2/highgui.hpp>
|
|
#include <opencv2/gapi.hpp>
|
|
#include <opencv2/gapi/core.hpp>
|
|
#include <opencv2/gapi/imgproc.hpp>
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
cv::VideoCapture cap;
|
|
if (argc > 1) cap.open(argv[1]);
|
|
else cap.open(0);
|
|
CV_Assert(cap.isOpened());
|
|
|
|
cv::GMat in;
|
|
cv::GMat vga = cv::gapi::resize(in, cv::Size(), 0.5, 0.5);
|
|
cv::GMat gray = cv::gapi::BGR2Gray(vga);
|
|
cv::GMat blurred = cv::gapi::blur(gray, cv::Size(5,5));
|
|
cv::GMat edges = cv::gapi::Canny(blurred, 32, 128, 3);
|
|
cv::GMat b,g,r;
|
|
std::tie(b,g,r) = cv::gapi::split3(vga);
|
|
cv::GMat out = cv::gapi::merge3(b, g | edges, r);
|
|
cv::GComputation ac(in, out);
|
|
|
|
cv::Mat input_frame;
|
|
cv::Mat output_frame;
|
|
CV_Assert(cap.read(input_frame));
|
|
do
|
|
{
|
|
ac.apply(input_frame, output_frame);
|
|
cv::imshow("output", output_frame);
|
|
} while (cap.read(input_frame) && cv::waitKey(30) < 0);
|
|
|
|
return 0;
|
|
}
|