前言

基于Vxworks的WindRiver获取摄像头图像进行处理,需要先进行转换,对于转换格式博主有点疑问。本文对此作出解释,若有错误,请交流指正。

README.md

The video camera capture software is customized to work with the UVC driver. The capture is taken in YUY2 format, and may therefore require conversion.

code

从README.md内容看出来,摄像头捕获图像之后需要进行格式转换才能继续后续图像处理过程。转换代码如下:

cvtColor(frame, frame1, COLOR_YUV2BGR_YUY2);

问题1:

COLOR_YUV2BGR_YUY2,这些格式是什么?COLOR_YUV?BGR_YUY2?怎么来的?

    capture >> frame;
std::cout << "capture image format: " << capture.get(CAP_PROP_FORMAT) << std::endl; // 0-CV_8UC1
std::cout << "capture image type: " << frame.type() << std::endl; // 8-CV_8UC2
cvtColor(frame, frame, COLOR_YUV2BGR_YUY2);
std::cout << "frame type: " << frame.type() << std::endl; // 16-CV_8UC3

图像格式的输出可能与摄像头的驱动也有关系。

问题2:

从摄像头捕获图像之后的格式转换语句,不太理解说明文档说是捕获的YUY2格式,为什么cvtColor是从COLOR_YUV格式转换成BGR_YUY2格式?

分析:

由于历史原因,opencv总是默认按照BGR格式处理视频,通过opencv打开一款格式为YUY2的camera,opencv会默认转换成BGR格式,如果想拿到YUY2的camera的原始数据,需要一些配置和格式转换,由于opencv不能显示YUY2格式的图片,因此如果需要预览必须先转换格式后,再调用显示函数。

参考

1. cvtColor函数

2. ColorConversionCodes;

3. opencv-处理yuy2格式视频

4. opencv中cv::Mat类型总结;

5. why-does-capgetcv_cap_prop_format-return-0;

【opencv基础-VxWorks】话说图像格式转换-COLOR_YUV2BGR_YUY2的更多相关文章

  1. 【opencv基础】opencv和dlib库中rectangle类型之间的转换

    前言 最近使用dlib库的同时也会用到opencv,特别是由于对dlib库的画图函数不熟悉,都想着转换到opencv进行show.本文介绍一下两种开源库中rectangle类型之间的转换. 类型说明 ...

  2. OpenCV中RGB和HSV转换的问题

    1.一般情况下HSV模型各分量的取值范围为:H为0到360°,S为0到100%,V为0到255.但是在OpenCV中在由RGB转换到HSV的过程中,发现HSV中H为0到180°,S为0到255,V为0 ...

  3. 什么是图像 -- opencv基础

    opencv基础篇--到底什么是图像 什么是图像?英语中有两个单词来形容图像,一个是picture,一个是image.这两者虽然是形容同一个东西,但却又有着区别.picture代表实而有物的真实图像: ...

  4. OpenCV基础篇之读取显示图片

    程序及分析 /* * FileName : read.cpp * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Tue 13 May ...

  5. OpenCV 基础知识------图像创建、访问、转换

    cvCreateImage函数-- Cxcore数组操作 创建头并分配数据 IplImage* cvCreateImage( CvSize size, int depth, int channels ...

  6. OpenCV 基础笔记

    本文大部分内容来源于入门者的Python快速教程 - 番外篇之Python-OpenCV 本篇将介绍和深度学习数据处理阶段最相关的基础使用,并完成4个有趣实用的小例子: 延时摄影小程序 视频中截屏采样 ...

  7. opencv基础知识------IplImage, CvMat, Mat 的关系和相互转换

    Mat,cvMat和IplImage这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高,openCV对Mat类型的计算也进行了优化.而CvMat和IplImage类型更侧重于“图像 ...

  8. opencv基础教程 之 图像基础和绘图

    1,教程:感谢小强 2,用argparse传参数来显示一张图片 #!/usr/bin/python #linux系统 #coding=utf-8 import cv2 import argparse ...

  9. OpenCV基础知识介绍

    1.图像与矩阵 一般来说,图像是一个标准的矩形,有着宽度(width)和高度(height).而矩阵有着行(row)和列(column),矩阵的操作在数学和计算机中的处理都很常见且成熟,于是很自然的就 ...

随机推荐

  1. 面试官常问的20道Java题目(附答案)-来自Java1234

    1. 以下代码的输出结果是(A) int i =3; i = i++; System.out.println(i); A .3  B.4  C.5 a=b++是先将b值赋值给a后b再自增. 2. Ma ...

  2. 2019-2020-1 20199302《Linux内核原理与分析》第三周作业

    云班课学习内容 一.C语言中嵌入汇编代码 1.内嵌汇编语法 (1)C语言中嵌入汇编代码的写法: asm( 汇编语句模板: 输出部分: 输入部分: 破坏描述部分): 说明:输出部分和输入部分对应着C语言 ...

  3. python列表命令

    创建普通列表:member;: 创建混合列表:mix: 创建空列表:empty >>> member = ['lala','oo'] >>> member ['la ...

  4. JS AJAX和JSONP的基础功能封装以及使用示例;

    1.代码: function ajax(options){ options = options || {}; options.type = options.type || "get" ...

  5. RookeyFrame 删除 线下添加的model

    环境:在model层已经添加了Crm_Cm_ContactInfo2 这个类,这个类现在已经添加到了数据库的,使用之前的方法(在前面的文章有提到该类) 删除步骤: 1.Sys_Module表 的字段 ...

  6. bash: cd: too many arguments 报错

    路径名或者变量有空格时候,会造成参数太多的错误提示 解决方法:把空格的地方用引号包括起来

  7. noi.ac #44 链表+树状数组+思维

    \(des\) 给出长度为 \(n\) 的序列,全局变量 \(t\),\(m\) 次询问,询问区间 \([l, r]\) 内出现次数为 \(t\) 的数的个数 \(sol\) 弱化问题:求区间 \([ ...

  8. Oracle自动备份(多个库),压缩打包,删除原文件

    1.创建一个database_Backup.bat文件,用记事本打开 内容参考如下:(楼主这里自动备份了四个数据库) set "now=%date:~0,4%%date:~5,2%%date ...

  9. Chrome浏览器控制台[DOM] Password field is not contained in a form:

    [DOM] Password field is not contained in a form: ( [DOM]密码字段不包含在form表单中) 解决方案:添加一层form标签 <div cla ...

  10. ubuntu 14.04 系统配置磁盘,CPU,内存,硬盘信息查看

    Linux查看物理CPU个数.核数.逻辑CPU个数# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 查看分区磁盘 ...