OpenCV如何将jpeg图像缓冲区放入cvShowImage
Posted
技术标签:
【中文标题】OpenCV如何将jpeg图像缓冲区放入cvShowImage【英文标题】:OpenCV how to put jpeg image buffer to cvShowImage 【发布时间】:2010-11-23 21:46:33 【问题描述】:我在缓冲区中有一个 JPG 图像,我会尝试用 cvShowImage 显示它。但是,这不起作用:
// buff is a JPEG image with 640*480 dimensions
IplImage* fIplImageHeader;
fIplImageHeader = cvCreateImageHeader(cvSize(640, 480), 8, 1);
fIplImageHeader->imageData = (char *)buff;
cvShowImage("Window 1", fIplImageHeader);
cvWaitKey();
cvReleaseImageHeader(&fIplImageHeader);
我得到一个黑色的窗口。
【问题讨论】:
【参考方案1】:您好像忘记设置widthStep
|-- int widthStep; // size of aligned image row in bytes
|-- int imageSize; // image data size in bytes = height*widthStep
【讨论】:
也可能是指针为空...尝试像这家伙一样复制数据...umanga.wordpress.com/2010/04/19/… 您可能还需要更改 cvCreateImageHeader(cvSize(640, 480), 8, 1);到 cvCreateImageHeader(cvSize(640, 480), IPL_DEPTH_8U, 1); 我尝试设置宽度和高度。没有帮助。我仍然得到一个黑色的窗口......只是顶部有一条白色的模糊线。指针不为空。我检查了每一帧大约有 30KB。 我想我发现了一个问题。 cvCreateImageHeader 从缓冲区中的 30KB 大 JPG 图像创建一个 300KB 大的图像。检查这个问题:***.com/questions/4261861/…以上是关于OpenCV如何将jpeg图像缓冲区放入cvShowImage的主要内容,如果未能解决你的问题,请参考以下文章
如何在OpenCV中使用Adobe RGB色彩空间读取jpeg图像?