本人用的两个摄像头测试的:
1.奥速的摄像头,型号ashu f11p,数据输出格式为YUV2,画面显示无问题;
2.本机安装虚拟摄像头:VCAM,数据输出格式为RGB24,画面显示颠倒;
一开始以为是数据输出格式不一致导致的,看其处理过程,查找了一天也没找到问题所在,流程处理无问题。
然后开始上网查找解决方法,在网上找到一条相关信息:
确认BITMAPINFOHEADER中的biHeight字段,
biHeight为正,位图自底向顶扫描,biHeight为负,位图自顶向底扫描。
如果这个值的设置和原始位图文件扫描方式不符,则图像显示可能会颠倒。
链接:https://bbs.youkuaiyun.com/topics/350081398
之前biHeight设置为正,我将biHeight设置为负,画面显示正确。
但是遗留一个问题:原始位图文件扫描方式(即biHeight为正还是负)未找到。
更新:按bmp文件头信息中分析得知:位图信息头中biHeight字段有两个含义,
1.指示位图的高度;2.指明该图像是一个倒向的位图(正数)还是一个正向的位图(负数);
大多数bmp文件是一个倒向的位图,高度值取正。
参考链接:https://www.cnblogs.com/wainiwann/p/7086844.html