【问题标题】:VideoCapture result in distorted lines in imageVideoCapture 导致图像中的线条失真
【发布时间】:2016-11-14 07:27:19
【问题描述】:

我正在尝试使用 OpenCV 从网络摄像头单击图像。我的代码如下。

VideoCapture cap0(0);
cap0.set(CV_CAP_PROP_FRAME_WIDTH,320);
cap0.set(CV_CAP_PROP_FRAME_HEIGHT,240);
cap0 >> frame;
string fileName = "/0.jpg";
cout << fileName << endl;
imwrite(fileName, frame);

我得到这张图片作为输出

您可以在输出中看到一些奇怪的线条。,可能的原因是什么以及我如何消除这些请指出正确的方向。

谢谢

【问题讨论】:

    标签: c++ opencv image-processing


    【解决方案1】:

    这看起来像是采集驱动程序中的一个问题,它不会在每 41 行(第一对的第 43 行!?)传输正确的行数据,可能使用块传输。

    这些行中似乎有有效的图像数据,但我无法确定它们可能来自哪里。

    【讨论】:

    • 有什么我可以解决的吗??
    • @SaghirA.Khatri 查询相机制造商和/或 BeagleBone 论坛的技术支持。
    • @SaghirA.Khatri:你确定图片大小吗?
    • 是的。如果我增加我的图像大小,我会得到绿色图像。减小尺寸会影响我的其他进程
    • @SaghirA.Khatri:您的回答似乎表明您没有掌握图像尺寸参数。
    【解决方案2】:

    您的情况可能是电磁干扰,请在相机附近没有电线的情况下尝试检查它,或者为相机制作支架。

    【讨论】:

    • 好吧,这段代码在 BeagleBone Black 上运行,我遇到了这个问题。但是当我从我的笔记本电脑上运行这段代码时,它没有这样的干扰。这也不能回答我将这些相同的网络摄像头附加到燃气表和水表的地方,我得到了相同的结果......
    • 您是否只获得一帧,或者正如我在您的代码中看到的那样,您在捕获每一帧之前确实打开了相机?这些条纹可能只出现在第一帧吗?
    • 所以我必须得到第二帧??
    • 看起来像相机型号或/和相机驱动程序问题,相机可能会初始化几帧。但它不能保证它是一个解决方案。您可以肯定地跳过前 10-20 帧来检查。
    • 我尝试了 50 帧,但都一样。 :( 不知道还能做什么
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    相关资源
    最近更新 更多