无论什么图片格式,opencv最终都是以位图形式进行图片显示,即以bmp图像格式进行图像显示,bmp图像由四部分组成:位图文件头、文图信息头、颜色表、位图数据。显示中的一个重要步骤就是将加载进来的Mat图像转换成bmp格式。下面就源码展开,看看显示过程,粘贴代码如下:

opencv图像显示imshow()源码分析

跟踪源码,可以发现最终显示函数仍旧是cvShowImage函数,继续跟踪下去,其源代码如下:

opencv图像显示imshow()源码分析

opencv图像显示imshow()源码分析

Line1193,根据读取到的图像信息进行位图数据结构相关成员进行赋值

Line1195,CreateDIBSection函数创建位图,其中dst_ptr指针指向该位图数据区域

Line1199,cvInitMatHeader函数对dst和dst_ptr进行内存区域关联,数据区域共享

Line1201,cvConvertImage函数已将原始图像cvMat类型变量image的相关数据拷贝到dst中了,也就相当dst_ptr指向的内存有位图的数据了

Line1206,InvaliddateRect函数对窗体进行刷新,也就是对客户窗口进行刷新,此时图像便显示在窗口上

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-15
  • 2021-11-01
  • 2021-08-24
  • 2022-12-23
  • 2021-05-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-01
  • 2021-06-04
  • 2021-09-07
  • 2021-10-11
相关资源
相似解决方案