Visual c++ cvShowImage我的图像颜色已更改

Visual c++ cvShowImage我的图像颜色已更改,visual-c++,opencv,Visual C++,Opencv,我在使用cvShowImage显示视频时遇到了奇怪的情况,甚至在IPLImage上添加图像数据时,我也不太确定 图像/帧应如下所示: 但图像显示如下: 如您所见,框架的某些部分也移动到左侧 有没有人遇到过类似的问题 while(1){ m_IPLimg1 = m_pFrameCapture->GrabOneFrame(); if(m_IPLimg1 == NULL) break;// no more frames, exit the loop cvFlip(m_

我在使用cvShowImage显示视频时遇到了奇怪的情况,甚至在IPLImage上添加图像数据时,我也不太确定

图像/帧应如下所示:

但图像显示如下:

如您所见,框架的某些部分也移动到左侧

有没有人遇到过类似的问题

while(1){
    m_IPLimg1 = m_pFrameCapture->GrabOneFrame();
    if(m_IPLimg1 == NULL) break;// no more frames, exit the loop
    cvFlip(m_IPLimg2, NULL, 0 );

    cvShowImage("Original Video", m_IPLimg1);
    cvShowImage("GMM Result Video", m_IPLimg2);

    char c = cvWaitKey(20);
    if (c==27) break;
}

真的提前谢谢。

看起来您正试图将IPLimg2翻转到位,但没有先设置其内容。尝试:

cvFlip(m_IPLimg1, m_IPLimg2, 0 );

这将翻转m_IPLimg1并将结果放入m_IPLimg2。

我得到了解决方案,我需要先使用格式化我的.avi,因为上面的视频是由图像序列生成的,编解码器似乎坏了。谢谢大家的回复。

你能发布你声明图像、捕获并显示图像的代码部分吗?@mevatron:嗨,我已经用代码更新了我的问题。什么是
m_IPLimg2
?代码中没有声明它。还有,你使用的是什么OpenCV版本?@karlphillip:嗨,Karl,很抱歉我没有提供完整的代码。IPLimg2是用于GMM后处理的IPLImg,换句话说,它将具有背景减法结果。无论如何,我得到了解决方案,我需要先使用mencoder格式化我的.avi,因为上面的视频是由图像序列生成的,所以编解码器似乎坏了。谢谢你的回复。太好了!添加此作为回答,让其他人知道您是如何解决此问题的。我得到了解决方案,我需要先使用mencoder格式化我的.avi,因为上面的视频是由图像序列生成的,所以编解码器似乎已损坏。不过,感谢您的回答。请务必接受您的回答,这样问题就不再公开了。。