Wed 28 Aug 21:38:52 CEST 2024
This commit is contained in:
parent
791e9c303d
commit
4d3f93c41b
116
src/SimNDT/gui/previewInspectionsController.py
Normal file
116
src/SimNDT/gui/previewInspectionsController.py
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
__author__ = 'Miguel Molero'
|
||||||
|
|
||||||
|
import time
|
||||||
|
|
||||||
|
from PySide.QtGui import *
|
||||||
|
from PySide.QtCore import *
|
||||||
|
from SimNDT.graphics.mplWidget import MplCanvas
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
|
||||||
|
class PreviewSingleLaunch(QDialog):
|
||||||
|
def __init__(self, method, scenario, transducer, parent=None):
|
||||||
|
super(PreviewSingleLaunch, self).__init__(parent)
|
||||||
|
self.parent = parent
|
||||||
|
|
||||||
|
mpl = MplCanvas(self, width=3, height=3, dpi=100)
|
||||||
|
|
||||||
|
M, N = np.shape(scenario.I)
|
||||||
|
Pixel_mm = scenario.Pixel_mm
|
||||||
|
|
||||||
|
XL, YL = method.view(M, N, Pixel_mm, method.Theta, transducer)
|
||||||
|
|
||||||
|
mpl.ax.imshow(scenario.I, vmin=0, vmax=255)
|
||||||
|
mpl.ax.hold(True)
|
||||||
|
mpl.ax.plot(YL, XL, 'ks')
|
||||||
|
mpl.ax.axis('off')
|
||||||
|
|
||||||
|
w = QWidget(self)
|
||||||
|
h = QVBoxLayout()
|
||||||
|
h.addWidget(mpl)
|
||||||
|
w.setLayout(h)
|
||||||
|
|
||||||
|
layout = QVBoxLayout()
|
||||||
|
layout.addWidget(w)
|
||||||
|
|
||||||
|
self.setLayout(layout)
|
||||||
|
self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)
|
||||||
|
self.setWindowTitle(self.tr("Preview"))
|
||||||
|
self.setWindowIcon(QIcon(":/previewImage.png"))
|
||||||
|
|
||||||
|
|
||||||
|
class PreviewLinearScan(QDialog):
|
||||||
|
def __init__(self, method, inspection, scenario, transducer, parent=None):
|
||||||
|
super(PreviewLinearScan, self).__init__(parent)
|
||||||
|
self.parent = parent
|
||||||
|
|
||||||
|
self.mpl = MplCanvas(width=5, height=5, dpi=100)
|
||||||
|
self.mpl.ax.axis('off')
|
||||||
|
|
||||||
|
layout = QVBoxLayout()
|
||||||
|
layout.addWidget(self.mpl)
|
||||||
|
|
||||||
|
self.setLayout(layout)
|
||||||
|
|
||||||
|
self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)
|
||||||
|
self.setWindowTitle(self.tr("Preview"))
|
||||||
|
self.setWindowIcon(QIcon(":/previewImage.png"))
|
||||||
|
|
||||||
|
self.method = method
|
||||||
|
self.inspection = inspection
|
||||||
|
self.scenario = scenario
|
||||||
|
self.transducer = transducer
|
||||||
|
QTimer.singleShot(300, self.Show)
|
||||||
|
|
||||||
|
def Show(self):
|
||||||
|
M, N = np.shape(self.scenario.I)
|
||||||
|
Pixel_mm = self.scenario.Pixel_mm
|
||||||
|
|
||||||
|
for offset in self.inspection.ScanVector:
|
||||||
|
self.transducer.CenterOffset = offset
|
||||||
|
XL, YL = self.method.view(M, N, Pixel_mm, self.method.Theta, self.transducer)
|
||||||
|
self.mpl.ax.imshow(self.scenario.I, vmin=0, vmax=255)
|
||||||
|
self.mpl.ax.hold(True)
|
||||||
|
self.mpl.ax.plot(YL, XL, 'ks')
|
||||||
|
self.mpl.ax.axis('off')
|
||||||
|
self.mpl.ax.hold(False)
|
||||||
|
self.mpl.draw()
|
||||||
|
QCoreApplication.processEvents()
|
||||||
|
time.sleep(0.25)
|
||||||
|
|
||||||
|
|
||||||
|
class PreviewTomography(QDialog):
|
||||||
|
def __init__(self, inspection, scenario, transducer, parent=None):
|
||||||
|
super(PreviewTomography, self).__init__(parent)
|
||||||
|
self.parent = parent
|
||||||
|
|
||||||
|
self.mpl = MplCanvas(width=5, height=5, dpi=100)
|
||||||
|
self.mpl.ax.axis('off')
|
||||||
|
|
||||||
|
layout = QVBoxLayout()
|
||||||
|
layout.addWidget(self.mpl)
|
||||||
|
|
||||||
|
self.setLayout(layout)
|
||||||
|
self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)
|
||||||
|
self.setWindowTitle(self.tr("Preview"))
|
||||||
|
self.setWindowIcon(QIcon(":/previewImage.png"))
|
||||||
|
|
||||||
|
self.inspection = inspection
|
||||||
|
self.scenario = scenario
|
||||||
|
self.transducer = transducer
|
||||||
|
QTimer.singleShot(300, self.Show)
|
||||||
|
|
||||||
|
def Show(self):
|
||||||
|
M, N = np.shape(self.scenario.I)
|
||||||
|
Pixel_mm = self.scenario.Pixel_mm
|
||||||
|
DiameterRing = self.inspection.DiameterRing
|
||||||
|
Theta = self.inspection.Theta
|
||||||
|
|
||||||
|
XL, YL = self.inspection.view(M, N, DiameterRing, Pixel_mm, Theta, self.transducer)
|
||||||
|
self.mpl.ax.imshow(self.scenario.I, vmin=0, vmax=255)
|
||||||
|
self.mpl.ax.hold(True)
|
||||||
|
self.mpl.ax.plot(YL, XL, 'ks')
|
||||||
|
self.mpl.ax.axis('off')
|
||||||
|
self.mpl.ax.hold(False)
|
||||||
|
self.mpl.draw()
|
Loading…
Reference in New Issue
Block a user