opencv/modules/gapi/misc/python
Rita Melo 439b6af379 feat: G-API: Custom stream sources in Python (#27276)
Implemented:

- A C++ proxy class PythonCustomStreamSource that implements the
  IStreamSource interface. This class acts as a bridge between
  G-API’s internal streaming engine and user-defined Python
  objects. Internally, it stores a reference to a Python object
  (PyObject*) and is responsible for: calling the Python object’s
  pull() method to retrieve the next frame, calling the descr_of()
  method to obtain the frame format description, acquiring and
  releasing the Python GIL as needed, converting the returned
  numpy.ndarray into cv::Mat, and handling any exceptions or
  conversion errors with proper diagnostics.

- A Python-facing factory function, cv.gapi.wip.make_py_src(),
  which takes a Python object as an argument and wraps it into a
  cv::Ptr<IStreamSource>. Internally, this function constructs a
  PythonCustomStreamSource instance and passes the Python object to
  it. This design allows Python users to define any class that
  implements two methods: pull() and descr_of(). No subclassing or
  special decorators are required on the Python side. The user
  simply needs to implement the expected interface.

Co-authored-by: Leonor Francisco <leonor.francisco@tecnico.ulisboa.pt>
2025-06-13 14:11:20 +01:00
..
package/gapi Enabled VAS OT in G-API Python interface 2023-12-19 17:51:59 +00:00
samples Add make_capture_src for video stream to Python 2022-05-16 20:46:08 +09:00
test feat: G-API: Custom stream sources in Python (#27276) 2025-06-13 14:11:20 +01:00
pyopencv_gapi.hpp feat: G-API: Custom stream sources in Python (#27276) 2025-06-13 14:11:20 +01:00
python_bridge.hpp Enabled VAS OT in G-API Python interface 2023-12-19 17:51:59 +00:00
shadow_gapi.hpp Enabled VAS OT in G-API Python interface 2023-12-19 17:51:59 +00:00