使用Opencv直接从网络摄像头获取灰度图像
Get grayscale image directly from webcam using Opencv
由于在我的嵌入式应用程序中我需要灰度图像,为了节省时间,我尝试直接从网络摄像头以灰度获取帧,而无需从RGB格式转换中获取帧。
我找到的示例以 RGB 格式获取帧,然后将其转换为
cvCvtColor(im_rgb,im_gray,CV_RGB2GRAY)
谢谢。
在 Linux 上,只需使用 v4l2-ctl
命令即可降低所有饱和度并让相机吐出灰度输出:
v4l2-ctl -c saturation=0
当然,仅当您的网络摄像头支持saturation
选项时,这才有效。若要检查是否如此,请查看所有可用的控件:
v4l2-ctl -l
简而言之,不!
大多数相机输出采用 YUV 格式。videoCapture 函数将其转换为 RGB。 cvSetCaptureProperty
函数可用于将CV_CAP_PROP_CONVERT_RGB
标志的值设置为 FALSE。因此,输出将以 YUV 为单位。将此图像转换为灰度图像。
通过这样做,我们可以避免 YUV 到 RGB 的转换。YUV到灰度的转换在计算上较少,因为Y通道确实是灰度数据。我不太确定,将不得不尝试一下。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 无法获取菜单选择以运行函数.C++
- OpenCV 4.1.2 - 从网络摄像头获取帧并将其拆分
- 使用源读取器从网络摄像头源获取 H264 样本
- OpenCV-从C/C++中的默认网络摄像头获取图片-GTK问题
- 使用Opencv直接从网络摄像头获取灰度图像
- c++opencv获取编码的网络摄像头流
- 当华硕Xtion Pro插入时,无法使用OpenCV的网络摄像头获取图片