OpenCV 加载和显示视频产生不准确的颜色

标签 opencv

我按照 OpenCV 中给出的示例进行视频显示,只是去掉了一些对我来说不必要的转换。我现在的代码加载视频文件然后显示它,问题是复制的视频有错误的颜色。

代码如下:

using namespace std;
using namespace cv;

// The main function

int main (int argc, char *argv[])
{

VideoCapture cap ("ETMI 002.mpg");  // Open the file

if (!cap.isOpened ())               // Check if opening was successful
    cerr << "I have failed!" << endl;

else
{
    Mat edges;
    Mat frame;
    namedWindow("edges",1);
    while (cap.read (frame))
    {
      cvtColor(frame, edges, CV_BGR2RGB);  
      imshow("edges", edges);
      if(waitKey(30) >= 0) break;
    }
}

return 0;

最佳答案

避免在转载的视频中发生变形
imshow("edges", edges)
imshow("边", frame)

while (cap.read (frame))
{
  cvtColor(frame, edges, CV_BGR2RGB); 

  // here is the change you are showing the converted image 
  // just simply add the original read frame

  imshow("edges", frame);   // here 
  if(waitKey(30) >= 0) break;
}

关于OpenCV 加载和显示视频产生不准确的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11224410/

相关文章:

android - Android:OpenCV,Android上的单词袋实现

python - Python 和 IP 摄像机的问题

OpenCV:Flann 匹配器崩溃

python - 使用opencv检测矩形

python - OpenCV 将 3d lut (.cube) 应用于图像

c++ - 使用 opencv 进行 qt5 部署,如何修复 lib 安装路径?

python - 如何避免使用opencv和numpy逐像素循环遍历图像

javascript - 无法弄清楚为什么opencv.js cv.fitEllipse()触发具有1个图像的未捕获异常,而没有触发另一个图像

java - cvHaarDetectObjects() 方法有什么作用?

c++ - 使用 opencv/c++ 计算两个图像之间的相似率