import numpy as np
[docs]
class PanoramaView(object):
def __init__(self, Parent):
"""
Panorama view controller
Args:
Parent (): The main class
"""
self.parent = Parent
self.rho = None
self.__pano_alpha_min = 10
self.__pano_alpha_max = 110
self.__connect_event()
def __connect_event(self):
"""
Connect the event to the function.
"""
self.parent.ui.btn_panorama.clicked.connect(self.process_to_panorama)
self.parent.ui.max_pano.valueChanged.connect(self.change_panorama_fov)
self.parent.ui.min_pano.valueChanged.connect(self.change_panorama_fov)
[docs]
def process_to_panorama(self):
"""
Process to the panorama view.
"""
if self.parent.image is not None:
if self.parent.moildev:
self.__panorama()
else:
self.parent.connect_to_moildev()
if self.parent.type_camera:
if self.parent.image is not None:
self.__panorama()
def __panorama(self):
"""
Panorama function.
"""
self.parent.normal_view = False
self.parent.anypoint_view = False
self.parent.panorama_view = True
self.parent.angle = 0
self.rho = self.parent.moildev.getRhoFromAlpha(self.__pano_alpha_min)
self.parent.ui.frame_navigator.hide()
self.parent.ui.frame_panorama.show()
mapX, mapY, = self.parent.moildev.getPanoramaMaps(
10, self.__pano_alpha_max)
np.save("./plugins/Thread_inspection/process_image/maps_pano/mapX.npy", mapX)
np.save("./plugins/Thread_inspection/process_image/maps_pano/mapY.npy", mapY)
self.parent.mapX_pano, self.parent.mapY_pano = self.parent.moildev.getPanoramaMaps(
self.__pano_alpha_min, self.__pano_alpha_max)
self.parent.ui.max_pano.setValue(self.__pano_alpha_max)
self.parent.ui.min_pano.setValue(self.__pano_alpha_min)
self.parent.show_to_window()
[docs]
def change_panorama_fov(self):
"""
Change the panorama view with change the field of view.
"""
self.__pano_alpha_min = self.parent.ui.min_pano.value()
self.__pano_alpha_max = self.parent.ui.max_pano.value()
self.process_to_panorama()