gpt4 book ai didi

c++ - 在 c++/cx 中将 SoftwareBitmap 或 WriteableBitmap 转换为 cv::Mat

转载 作者:行者123 更新时间:2023-11-28 05:39:49 26 4
gpt4 key购买 nike

我试图在 c++/cx Microsoft 通用应用程序中将 WriteableBitmap 转换为 cv::Mat。但是当我尝试使用创建的 Mat 进行操作时,出现以下错误:

enter image description here

这是我的代码:

void App1::MainPage::processImage(SoftwareBitmap^ bitmap)
{
WriteableBitmap^ wb = ref new WriteableBitmap(bitmap->PixelWidth, bitmap->PixelHeight);
bitmap->CopyToBuffer(wb->PixelBuffer);
Mat img_image(wb->PixelHeight, wb->PixelWidth, CV_8UC3,(void*)wb->PixelBuffer);
//next step results in error
cvtColor(img_image, img_image, CV_BGR2BGRA);
...
}

所以我的最后一个问题:如何将 SoftwareBitmap 或 WriteableBitmap 转换为 cv::Mat?

最佳答案

问题是 PixelBuffer is not a void *, it is an IBuffer^ .

要获取原始数据,您可以使用 IBufferByteAccess interface如果您熟悉 COM 编程,或者您可以初始化一个 DataReader with an IBuffer如果您更愿意留在 WinRT 中(尽管这种技术会制作数据的拷贝)。

关于c++ - 在 c++/cx 中将 SoftwareBitmap 或 WriteableBitmap 转换为 cv::Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37375414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com