zoomable-image-label-master

所属分类:其他
开发工具:QT
文件大小:511KB
下载次数:0
上传日期:2021-03-05 16:43:24
上 传 者啦啦啦啦啦yang
说明:  以鼠标指针为中心缩放图片以及ROI的框选
(Zoom image and ROI box selection with mouse pointer as the center)

文件列表:
LICENSE (1063, 2019-12-13)
QTImageDisplay.sln (1424, 2019-12-13)
QTImageDisplay (0, 2019-12-13)
QTImageDisplay\Debug_x64.props (542, 2019-12-13)
QTImageDisplay\QTImageDisplay.vcxproj (11916, 2019-12-13)
QTImageDisplay\QTImageDisplay.vcxproj.filters (3106, 2019-12-13)
QTImageDisplay\Release_x64.props (542, 2019-12-13)
QTImageDisplay\resources (0, 2019-12-13)
QTImageDisplay\resources\qtimagedisplay.qrc (50, 2019-12-13)
QTImageDisplay\src (0, 2019-12-13)
QTImageDisplay\src\main (0, 2019-12-13)
QTImageDisplay\src\main\main.cpp (183, 2019-12-13)
QTImageDisplay\src\ui (0, 2019-12-13)
QTImageDisplay\src\ui\forms (0, 2019-12-13)
QTImageDisplay\src\ui\forms\qtimagedisplay.ui (3820, 2019-12-13)
QTImageDisplay\src\ui\mainwindow (0, 2019-12-13)
QTImageDisplay\src\ui\mainwindow\MainWindow.cpp (1891, 2019-12-13)
QTImageDisplay\src\ui\mainwindow\MainWindow.h (346, 2019-12-13)
QTImageDisplay\src\ui\widget (0, 2019-12-13)
QTImageDisplay\src\ui\widget\RoiImageWidget.cpp (11219, 2019-12-13)
QTImageDisplay\src\ui\widget\RoiImageWidget.h (2007, 2019-12-13)
QTImageDisplay\src\ui\widget\ZoomImageWidget.cpp (9991, 2019-12-13)
QTImageDisplay\src\ui\widget\ZoomImageWidget.h (2627, 2019-12-13)
images (0, 2019-12-13)
images\demo.gif (517351, 2019-12-13)
images\test_image.jpg (113015, 2019-12-13)

# Scalable ROI-selectable Image Label [TOC] ## 简介 Subclasses of QLabel that supports picture zooming in and out under cursor position as well as ROI selection 自定义的QLabel子类,实现了以鼠标指针为中心缩放图片以及ROI的框选 ## Demo demo ## 原理 可以认为存在三个坐标系 1. **原图像素坐标系Oorigin** 原点Porigin_o = (0, 0) 最远点Porigin_max = (image.width, image.height) 2. **放大图像素坐标系Ozoom** 原点Pzoom_o = (0, 0) 最远点Pzoom_max = (label.width * zoom_ratio, label.height * zoom_ratio) 3. **控件坐标系Owidget** 原点Pwidget_o = (0, 0) 最远点Pwidget_max = (label.width, label.height) 原图像素坐标系和控件坐标系的大小不会改变,而放大图像素坐标系的大小会随zoom_ratio改变而改变。因此,无论是图片显示还是ROI框选,都可以把控件里的点先转到原图上,需要显示时再把对应的点由原图转到控件坐标系里来,步骤如下: ### 1. Owidget→Ozoom 已知鼠标位置在Owidget下的坐标,记为Pwidget_a=(xw, yw),需要得到其在Ozoom下的坐标Pzoom_a(xz, yz) Pzoom_a = Pwidget_a + display_start_point_ display_start_point_为Pwidget_o在Ozoom下的坐标 ### 2. Ozoom→Oorigin 已知Pzoom_a,需要得到其在Oorigin下的坐标Porigin_a(xo, yo) X方向转换比例Xfactor = image.width / (label.width * zoom_ratio) Y方向转换比例Yfactor = image.height/ (label.height* zoom_ratio) 则 xo = xz * Xfactor yo = yz * Yfactor ### 3. 将Porigin_a转换到新的Ozoom下 注意滚轮转动后,zoom_ratio_变为了zoom_ratio_'。此时,原图上的点Porigin_a在新的Ozoom下的坐标Pzoom_a'为 Pzoom_a'.x = xz * zoom_ratio_' / zoom_ratio Pzoom_a'.y = xz * zoom_ratio_' / zoom_ratio

近期下载者

相关文件


收藏者