30 #include <opencv2/imgproc/imgproc.hpp>
37 class DK2WrappedImageSource :
public ImageSource {
39 DK2WrappedImageSource(ImageSourcePtr &&cam,
bool doHid)
40 : m_camera(
std::move(cam)) {
42 m_hid.reset(
new oculus_dk2::Oculus_DK2_HID{});
45 virtual ~DK2WrappedImageSource() {}
47 bool ok()
const override {
return m_camera && m_camera->ok(); }
49 void retrieve(cv::Mat &color, cv::Mat &gray)
override;
54 ImageSourcePtr m_camera;
56 std::unique_ptr<oculus_dk2::Oculus_DK2_HID> m_hid;
59 ImageSourcePtr openDK2WrappedCamera(ImageSourcePtr &&cam,
bool doHid) {
60 auto ret = ImageSourcePtr{};
65 ret.reset(
new DK2WrappedImageSource(std::move(cam), doHid));
73 return m_camera->grab();
78 m_camera->retrieveColor(m_scratch);
80 gray = osvr::oculus_dk2::unscramble_image(m_scratch);
81 cv::cvtColor(gray, color, CV_GRAY2RGB);
90 return m_camera->resolution();
void retrieve(cv::Mat &color, cv::Mat &gray, osvr::util::time::TimeValue ×tamp) override
Call after grab() to get the actual image data.
cv::Size resolution() const override
Get resolution of the images from this source.
void retrieveColor(cv::Mat &color, osvr::util::time::TimeValue ×tamp) override
Header file describing interface for an Oculus DK2 device.