使用OpenCV 读取图片 ,再用OpenGL显示,图像有错位

最近在做Kinect跟踪的时候需要做视差图与蒙版的运算。因为图片很多,所以想利用OpenGL的GLSL来加速。做到最后发现生成的图像不对!自习检查了代码流程,没发现问题。

单步调试的时候看到图像变量有数据也没有追究,浪费N个小时之后,决定去掉各种复杂功能,单独用GLSL显示一张图片看看效果。

于是发现了问题所在:

就是用OpenCV读取图片的问题。最简单的就是用OpenCV自带的函数,一句代码即可读取一张图片到内存。


几点说明:

  1. 用 imread() 函数读取图片,保存在Mat类型变量里面;
  2. 用imshow() 函数显示该图片的时候显示正常!!(这里极具迷惑性!!)
  3. 但是!用OpenGL的glDrawPixels()函数显示不正常;用GLSL显示(纹理)不正常。但是不正常的这两个是一样的,具体可见下面的对比。
  4. 试过3通道,4通道的图像,结果一样
  5. 有的jpg图像能正常显示,有的不能(求大神解释==)




可以看到:

  1. 结果图是上下颠倒的(看”1“的尖端)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值