如何在openCV中将an转换array<System:Byte>^
为a 。Mat
我array<System:Byte>^
在 c++/cli 中被传递,但我需要将其转换Mat
为能够读取和显示它。
问问题
1345 次
1 回答
3
您可以使用构造函数Mat::Mat(int rows, int cols, int type, void* data, size_t step=AUTO_STEP)
。转换可能如下所示。
void byteArray2Mat(array<System::Byte>^ byteArray, cv::Mat &output)
{
pin_ptr<System::Byte> p = &byteArray[0];
unsigned char* pby = p;
char* pch = reinterpret_cast<char*>(pby);
// assuming your input array has 2 dimensions.
int rows = byteArray->GetLength(0);
int cols = byteArray->GetLength(1);
output = cv::Mat(rows, cols, CV_8UC1, (void*)pch)
}
我没有 c++/CLI 来测试程序,这可能不是最有效的方法。至少它应该让你知道如何开始。
于 2013-06-27T19:28:37.853 回答