c++从网络读取一幅图片文件,存入Unsigned char数组,如何将该数组load进opencv的Mat结构中?

Ryan890830 2015-04-24 11:40:17
c++从网络中读取一幅图像文件的代码如下:
LPSTR GetInterNetURLText(LPSTR lpcInterNetURL, char* buff)
{
HINTERNET hSession;
LPSTR lpResult = NULL;
hSession = InternetOpen("WinInet", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
__try
{
if(hSession != NULL)
{
HINTERNET hRequest;
hRequest = InternetOpenUrlA(hSession,lpcInterNetURL, NULL,0, INTERNET_FLAG_RELOAD, 0);
__try
{
if(hRequest != NULL)
{
DWORD dwBytesRead;
char szBuffer[BUF_SIZE] = {0};

if(InternetReadFile(hRequest, szBuffer, BUF_SIZE, &dwBytesRead))
{
RtlMoveMemory(buff, szBuffer, BUF_SIZE);
return 0;
}
}
}__finally
{
InternetCloseHandle(hRequest);
}
}
}__finally
{
InternetCloseHandle(hSession);
}
return lpResult;
}

数组buff是得到的一幅图像文件数据,然后我需要将该数组的数据转化为opencv中Mat存储图像数据的类型。
如何能做到?谢谢!
...全文
1261 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_30327997 2015-08-03
  • 打赏
  • 举报
回复
你好,这个imdecode怎么用呢。我直接使用 我的buff是这样定义的:char buff[BUF_SIZE] = {0};
relaxisland 2015-04-27
  • 打赏
  • 举报
回复
可以创建一个比较简单的结构体IPlImage ---》这个结构体很多情况可以转换为MAT来使用的
Ryan890830 2015-04-27
  • 打赏
  • 举报
回复
引用 1 楼 ssbqrm 的回复:
OpenCV里有这么一个函数imdecode Reads an image from a buffer in memory. C++: Mat imdecode( InputArray buf, int flags)
引用 1 楼 ssbqrm 的回复:
OpenCV里有这么一个函数imdecode Reads an image from a buffer in memory. C++: Mat imdecode( InputArray buf, int flags)
谢谢你的指点,已经帮助我解决了问题!
prfans1 2015-04-27
  • 打赏
  • 举报
回复
自己创建个opencv结构体,然后把里面的数据指针知道uchar数组,再修改些参数就可以了吧。IPLIMAGE好整。
ssbqrm 2015-04-24
  • 打赏
  • 举报
回复
OpenCV里有这么一个函数imdecode
Reads an image from a buffer in memory.
C++: Mat imdecode( InputArray buf, int flags)

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧