在使用OpenCV显示图像时会出现图像倒立的情况,IplImage的origin属性有关系。origin为0表示顶左结构,即图像的原点是左上角,如果为1为左下角。一般从硬盘读入的图片或者通过cvCreateImage方法创建的IplImage图片默认的origin为0,即显示的时候都是正的。而由摄像头或者视频文件获取的帧图像origin为1,此时显示的时候扫描顺序是从下到上,显示也是正的。但是如果你自己创建了一个IplImage格式的图像img,且从帧图像中copy或者截取一部分区域进行显示的时候就会出现倒立情况。这是因为cvCreateImage方法得到的img的origin是0,而帧图像的origin为1,它会将帧图像的第i行赋值给img的第height-i行。

因此就出现了倒立.解决办法是:

1.在创建之后将origin调整为与帧图像的origin一致即可。但是这样在之后的操作中仍然要改变以前顶左下的图片操作习惯(也就是说操作数据的时候第一个像素还是会在左下角)。
2.最好的方法利用cvFlip(frame, NULL, 0); 将图片按X轴进行反转。得到正向的图片。这样改变了将图片改为顶左上的结构。利于后面的操作。

这样在操作ImageData的0号地址的时候操作也就是图像的第一个像素。


1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除。

2.未经原作者允许不得转载本文内容,否则将视为侵权;

3.转载或者引用本文内容请注明来源及原作者;

4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。

下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每天不断。

解决OpenCV图像数据倒立的问题相关推荐

  1. OpenCV图像数据访问,查询表和时间消耗测试

    OpenCV图像数据访问, 查询表和时间消耗测试 代码示例 #include <opencv2/core.hpp> #include <opencv2/core/utility.hp ...

  2. 计算机视觉用显卡,基于GPU加速的计算机视觉编程:使用OpenCV和CUDA实时处理复杂图像数据...

    本书是OpenCV开发人员的推荐阅读指南,手把手教你使用OpenCV和CUDA实现GPU加速的计算机视觉项目开发,帮你快速掌握利用GPU实时处理复杂图像数据的高效技术.全书共11章,章介绍CUDA架构 ...

  3. 事实证明,OpenCV中对RGB图像数据的存储顺序是BGR,而且Scalar()的顺序也是B,G,R

    验证程序的源码如下(用到的图像下载链接为Red_pic.jpg_免费高速下载|百度网盘-分享无限制): 图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料 ...

  4. OpenCV中利用cvConvertScale()对图像数据作线性变换

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 在OpenCV的IplImage结构体char ...

  5. websocket传输canvas图像数据给C++服务端opencv图像实现web在线实时图像处理

    为什么80%的码农都做不了架构师?>>>    前后端的耦合想了很久,上下课都在思考怎么做,然后终于憋出来了.这是之前搞的一个视觉计算的项目,boss叫对接到前端,于是就产生了这样一 ...

  6. 使用OpenCV和NumPy处理图像数据时,出现显示异常,图片经常出现空白

    1 前言 还是想念Java,希望Java能吸收Python的特性,变得更加强大! 2 问题描述 今天在用NumPy库处理图像数据时,出现一个问题,任务是需要写一个中值滤波的算法,算法其实不是很难,不过 ...

  7. opencv处理图像数据时候,出现图像全黑

    之所以图像出现黑色,是因为在opencv处理image图像矩阵时候,可以输入两种数据范围,一个为[0,255],另外一个为[0,1].当图像矩阵为小数,比如122.5的时候,opencv会以[0,1] ...

  8. Python+OpenCV视频的读取与处理;截取部分图像数据; 边界填充

    视频读取 ●cv2.VideoCapture可以捕获摄像头, 用数字来控制不同的设备,例如0,1. ●如果是视频文件,直接指定好路径即可. import cv2 #opencv默认读取格式是BGR v ...

  9. python 读取图片成为一维数组_在OpenCV里图像数据与一维数组转换

    通过读取文件之后,生成的图像数据一般是二维或三维数组,每个数组元素是8位字节大小.有时候从网络里接收到一串数据,它是字节顺序的,比如有30000个字节,想要把它转换为300X100的图像大小,这个怎么 ...

最新文章

  1. 千万级智能推荐系统架构演进!
  2. 双程动态规划 nyoj61
  3. label swift
  4. 帝国CMS的phomenewspic/ecmsinfo标签详解
  5. MySQL Access denied错误的缘故情由
  6. 这10句话,迷茫时读一读。
  7. C# #if, #else和#endif预处理指令
  8. Spring Boot Admin 2 值得了解的新变化
  9. 基础算法---二分查找
  10. 【前端】创建元素并插入到现有文档
  11. opencv中mean函数耗时_使用OpenCV进行人脸对齐
  12. 查询系统是使用 MBR 还是 GPT 分区 (Windows 和 Linux)
  13. Oracle实例解析:编码与字符集
  14. excel一列求和_EXCEL表格怎么自动求和?4种典型批量求和套路
  15. tp5利用redis缓存制作qq邮箱验证
  16. Hadoop 3.x|第二天|配置完全分布式运行模式(重点)
  17. P2P“点融网”凭什么拿得2.07亿美元融资?
  18. BUUCTF:[GXYCTF2019]佛系青年
  19. wifi系列------初始化
  20. ISO26262-6 2018第七章: Software architectural design

热门文章

  1. 杭电OJ,已重新开放!HDOJ
  2. 利用js实现匀速运动 逆战
  3. winform 以光标指向点为中心 通过鼠标滚轮对图片进行缩放
  4. 安装rabbitmq时报错nothing provides erlang >= 25.0 needed by rabbitmq-server
  5. 【vue】v-for循环样式乱
  6. php ajax多图上传预览,Ajax上传图片及先预览功能的实现方法
  7. 满二叉树和完全二叉树
  8. matlab与C语言混合编程
  9. Java学习笔记项目三:开发团队调度软件(尚硅谷)
  10. Synopsys Sentaurus TCAD系列教程之--Svisual(SmallMOS_2D3D) 解析