OpenCV 4.11.0
开源计算机视觉库
加载中…
搜索中…
未找到匹配项
WinRT 视频 I/O 胶合代码

详细描述

枚举

枚举  {
  cv::OPEN_CAMERA = 300 ,
  cv::CLOSE_CAMERA ,
  cv::UPDATE_IMAGE_ELEMENT ,
  cv::SHOW_TRACKBAR
}
 

函数

void cv::winrt_imshow ()
 
void cv::winrt_onVisibilityChanged (bool visible)
 
void cv::winrt_setFrameContainer (::Windows::UI::Xaml::Controls::Image^ image)
 
template<typename ... Args>
void cv::winrt_startMessageLoop (std::function< void(Args...)> &&callback, Args... args)
 
template<typename ... Args>
void cv::winrt_startMessageLoop (void callback(Args...), Args... args)
 
template void cv::winrt_startMessageLoop (void callback(void))
 

枚举类型文档

◆ 匿名枚举

匿名枚举

#include <opencv2/videoio/cap_winrt.hpp>

枚举成员
OPEN_CAMERA 
CLOSE_CAMERA 
UPDATE_IMAGE_ELEMENT 
SHOW_TRACKBAR 

函数文档

◆ winrt_imshow()

void cv::winrt_imshow ( )

#include <opencv2/videoio/cap_winrt.hpp>

注意
必须调用此函数来更新附加的图像源。代码示例可在 winrt_startMessageLoop() 中找到。

◆ winrt_onVisibilityChanged()

void cv::winrt_onVisibilityChanged ( bool visible)

#include <opencv2/videoio/cap_winrt.hpp>

注意
必须从 WinRT 特定的回调函数中调用此函数来处理图像采集器的状态。以下是类的使用方法:
MainPage::MainPage()
{
// ...
Window::Current->VisibilityChanged += ref new Windows::UI::Xaml::WindowVisibilityChangedEventHandler(this, &Application::MainPage::OnVisibilityChanged);
// ...
}
void Application::MainPage::OnVisibilityChanged(Platform::Object ^sender,
Windows::UI::Core::VisibilityChangedEventArgs ^e)
{
}
void winrt_onVisibilityChanged(bool visible)

◆ winrt_setFrameContainer()

void cv::winrt_setFrameContainer ( ::Windows::UI::Xaml::Controls::Image^ image)

#include <opencv2/videoio/cap_winrt.hpp>

注意
必须调用此函数来分配保存您正在处理的图像的 WinRT 控件。代码示例可在 winrt_startMessageLoop() 中找到。

◆ winrt_startMessageLoop() [1/3]

template<typename ... Args>
void cv::winrt_startMessageLoop ( std::function< void(Args...)> && callback,
Args... args )

◆ winrt_startMessageLoop() [2/3]

template<typename ... Args>
void cv::winrt_startMessageLoop ( void callbackArgs...,
Args... args )

◆ winrt_startMessageLoop() [3/3]

template void cv::winrt_startMessageLoop ( void callbackvoid)

#include <opencv2/videoio/cap_winrt.hpp>

注意
启动 (1) 帧抓取循环和 (2) 消息循环
  1. 作为参数传递的函数必须实现常见的 OCV 读取帧模式(参见 cv::VideoCapture 文档)并调用 cv::winrt_imgshow()。
  2. 消息处理循环需要克服 WinRT 容器和类型转换限制。OCV 提供了默认实现。以下是类的使用方法:
    void cvMain()
    {
    Mat frame;
    cam.open(0);
    while (1)
    {
    cam >> frame;
    // 不要再次处理同一帧
    if (!cam.grab()) continue;
    // 您的处理逻辑在此处
    // 更新 XAML 图像组件的必要步骤
    }
    }
    MainPage::MainPage()
    {
    InitializeComponent();
    }
    n 维密集数组类
    定义 mat.hpp:829
    用于从视频文件、图像序列或摄像机捕获视频的类。
    定义 videoio.hpp:766
    virtual bool open(const String &filename, int apiPreference=CAP_ANY)
    打开视频文件或捕获设备或 IP 视频流以进行视频捕获。
    virtual bool grab()
    从视频文件或捕获设备抓取下一帧。
    void winrt_setFrameContainer(::Windows::UI::Xaml::Controls::Image^ image)
    void winrt_startMessageLoop(std::function< void(Args...)> &&callback, Args... args)
    void winrt_imshow()