工具:Visual Studio2008,Qt4.8 VS插件,GDAL库
功能:将大图像首先缩小显示,在缩小的图像中选择一块矩形区域(即ROI,感兴趣区域)显示,现实的图像可以实现缩放,鼠标拖拽,如同google map。
缩略图使用QLabel,显示大图区域使用QGraphicsView 框架,因为QGraphicsView框架功能丰富,很适合用于图形图像的显示操作。
步骤已使用方法如下:
1.图像缩放,根据需要缩小的倍数,使用GDAL库的读取图像数据接口RasterIO读取采样的数据,显示在缩略图区
2.ROI选择,实现鼠标事件(点击、释放)的获取,得到鼠标点在图像中的坐标,然后根据缩小的倍数得到鼠标选择的区域在原图像中的大小,读取原图像数据并显示
3.图像缩放,根据区域原图像数据,在此源图像数据的基础上做高斯金字塔构建,将每层的数据保存起来,然后根据缩放找到需要显示的数据层,将需要显示的图像显示出来
4.图像拖拽,获取鼠标移动的长度。根据长度确定滑动杆的值即可实现拖拽。QGraphicsView类是继承自QAbstractScrollArea类的,因此有QScrollBar对象
以上是总体的思路和方法,具体的实现见本博客其他文章,索引如下:
图像ROI显示:http://www.cnblogs.com/Romi/archive/2012/11/21/2781753.html
图像缩放:http://www.cnblogs.com/Romi/archive/2012/11/22/2782151.html
图像拖拽:http://www.cnblogs.com/Romi/archive/2012/11/22/2782733.html