diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/gepard.py b/__main__.py similarity index 97% rename from gepard.py rename to __main__.py index 76d3ac8f753714528aacce98a7dc99094b12ca6a..5970f1644ff3e437aac35d2806837dd99e76b2e3 100755 --- a/gepard.py +++ b/__main__.py @@ -18,13 +18,13 @@ You should have received a copy of the GNU General Public License along with this program, see COPYING. If not, see . """ -from PyQt5 import QtCore, QtWidgets, QtGui -from sampleview import SampleView -from scalebar import ScaleBar -from ramancom.ramancontrol import defaultPath -from ramancom.ramanSwitch import RamanSwitch -from colorlegend import ColorLegend import os +from PyQt5 import QtCore, QtWidgets, QtGui +from .sampleview import SampleView +from .scalebar import ScaleBar +from .ramancom.ramancontrol import defaultPath +from .ramancom.ramanSwitch import RamanSwitch +from .colorlegend import ColorLegend class MeasureParticleWindow(QtWidgets.QMainWindow): @@ -116,7 +116,7 @@ class MeasureParticleWindow(QtWidgets.QMainWindow): def createActions(self): fname = os.path.join(os.path.split(__file__)[0], - os.path.join("data","brand.png")) + os.path.join('data', 'brand.png')) self.aboutAct = QtWidgets.QAction(QtGui.QIcon(fname), "About Particle Measurment", self) self.aboutAct.triggered.connect(self.about) @@ -330,4 +330,4 @@ if __name__ == '__main__': meas.showMaximized() ret = app.exec_() if fp is not None: - fp.close() \ No newline at end of file + fp.close() diff --git a/analysis/datastats.py b/analysis/datastats.py index bc1a5ed378a0436b3ce3b7d846ef0a87e203bebc..ca847ad799b9b2f6348a1bdb5ba025be6b8979d3 100644 --- a/analysis/datastats.py +++ b/analysis/datastats.py @@ -21,7 +21,7 @@ If not, see . import os import numpy as np import operator -from dataset import loadData, recursiveDictCompare +from ..dataset import loadData, recursiveDictCompare def readDataStats(fname): @@ -215,4 +215,4 @@ class DataStats(object): def testRead(self): statsread = readDataStats(self.dataset.fname) return recursiveDictCompare(self.__dict__, statsread.__dict__) - \ No newline at end of file + diff --git a/dataset.py b/dataset.py index 4cac3e336b48b439e07ec47e703a30ac6ae5bf7e..f11f44762f7daa1b1bd614acd5c181738f49fa4e 100644 --- a/dataset.py +++ b/dataset.py @@ -22,7 +22,7 @@ import os import pickle import numpy as np import cv2 -from helperfunctions import cv2imread_fix, cv2imwrite_fix +from .helperfunctions import cv2imread_fix, cv2imwrite_fix from copy import copy currentversion = 2 diff --git a/detectionview.py b/detectionview.py index 923d3a9e0dca49eeff97adeb150b44d90208d68e..03d9cac54d5bcb8ee9286d9b216d77855d6dd40e 100755 --- a/detectionview.py +++ b/detectionview.py @@ -20,7 +20,7 @@ If not, see . """ import numpy as np from PyQt5 import QtCore, QtWidgets, QtGui -from segmentation import Segmentation +from .segmentation import Segmentation from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg import matplotlib.pyplot as plt from threading import Thread @@ -690,4 +690,4 @@ if __name__ == "__main__": view = ParticleDetectionView(img, ds, None) view.setDataSet(ds) view.show() - app.exec_() \ No newline at end of file + app.exec_() diff --git a/opticalscan.py b/opticalscan.py index 32f651ac0f1ddcfe2c192da2b8cc8b7ba9500fb7..c3506227248a939b25886b1e6fd80c1aeef01790 100755 --- a/opticalscan.py +++ b/opticalscan.py @@ -23,10 +23,10 @@ from PyQt5 import QtCore, QtWidgets import numpy as np from multiprocessing import Process, Queue, Event import queue -from imagestitch import imageStacking +from .imagestitch import imageStacking import os import cv2 -from helperfunctions import cv2imread_fix, cv2imwrite_fix +from .helperfunctions import cv2imread_fix, cv2imwrite_fix from time import time import datetime import sys @@ -636,4 +636,4 @@ if __name__ == "__main__": ds = DataSet('Test') optscan = OpticalScan(SimulatedRaman(), ds) optscan.show() - sys.exit(app.exec_()) \ No newline at end of file + sys.exit(app.exec_()) diff --git a/ramancom/ramancontrol.py b/ramancom/ramancontrol.py index 7d0174ec982a7b6c4384663b107fb99060e8ff6d..6aa0424ceb1929aba1d499139ee3935a4ca3afa0 100644 --- a/ramancom/ramancontrol.py +++ b/ramancom/ramancontrol.py @@ -43,19 +43,19 @@ except KeyError: pass if interface == "SIMULATED_RAMAN_CONTROL": - from ramancom.simulatedraman import SimulatedRaman + from .simulatedraman import SimulatedRaman RamanControl = SimulatedRaman print("WARNING: using only simulated raman control!") simulatedRaman = True elif interface == "WITEC_CONTROL": - from ramancom.WITecCOM import WITecCOM + from .WITecCOM import WITecCOM RamanControl = WITecCOM RamanControl.magn = int(config["General Microscope Setup"]["magnification"]) # not yet implemented in WITecCOM, but would probably be a good idea... simulatedRaman = False elif interface == "RENISHAW_CONTROL": - from ramancom.renishawcom import RenishawCOM + from .renishawcom import RenishawCOM RamanControl = RenishawCOM RamanControl.magn = int(config["General Microscope Setup"]["magnification"]) try: diff --git a/ramancom/simulatedraman.py b/ramancom/simulatedraman.py index 13c96b4b0a6e35844d76c6992b57cd850498d2a2..6cc7f1cb64c82ae82831bde67d8799316dfef5c4 100644 --- a/ramancom/simulatedraman.py +++ b/ramancom/simulatedraman.py @@ -24,7 +24,7 @@ Simualted Raman interface module for testing without actual raman system connect from time import sleep import numpy as np from shutil import copyfile -from ramancom.ramanbase import RamanBase +from .ramanbase import RamanBase class SimulatedRaman(RamanBase): @@ -117,4 +117,4 @@ class SimulatedRaman(RamanBase): print("Scan number:", num) sleep(.1) if num==self.timeseries-1: - self.timeseries = False \ No newline at end of file + self.timeseries = False diff --git a/ramanscanui.py b/ramanscanui.py index 443ed92b12525356a06270e0f4782e7722a21cb3..7e66b37e08c3e1dc92c3d13d7c441dd1fbad2e79 100644 --- a/ramanscanui.py +++ b/ramanscanui.py @@ -24,7 +24,7 @@ import numpy as np from multiprocessing import Process, Queue, Event import queue from time import time -from external import tsp +from .external import tsp import datetime import sys import os @@ -289,4 +289,4 @@ class RamanScanUI(QtWidgets.QWidget): self.close() return self.timer.start(100.) - \ No newline at end of file + diff --git a/sampleview.py b/sampleview.py index dfae213bf99bde60d5ff11fb2c28b79a68b6d17c..4e0b4c54ff433c4627ed3e98821160abc3f4f347 100644 --- a/sampleview.py +++ b/sampleview.py @@ -21,17 +21,17 @@ If not, see . from PyQt5 import QtCore, QtGui, QtWidgets import numpy as np import os -from dataset import DataSet, loadData -from ramancom.ramancontrol import RamanControl, simulatedRaman -from opticalscan import OpticalScan -from ramanscanui import RamanScanUI -from detectionview import ParticleDetectionView -from analysis.analysisview import ParticleAnalysis -from zeissimporter import ZeissImporter -from viewitems import FitPosIndicator, Node, Edge, ScanIndicator, RamanScanIndicator, SegmentationContours -from helperfunctions import polygoncovering, cv2imread_fix +from .dataset import DataSet, loadData +from .ramancom.ramancontrol import RamanControl, simulatedRaman +from .opticalscan import OpticalScan +from .ramanscanui import RamanScanUI +from .detectionview import ParticleDetectionView +from .analysis.analysisview import ParticleAnalysis +from .zeissimporter import ZeissImporter +from .viewitems import FitPosIndicator, Node, Edge, ScanIndicator, RamanScanIndicator, SegmentationContours +from .helperfunctions import polygoncovering, cv2imread_fix import cv2 -from ramancom.configRaman import RamanConfigWin +from .ramancom.configRaman import RamanConfigWin class SampleView(QtWidgets.QGraphicsView): ScalingChanged = QtCore.pyqtSignal(float) @@ -168,10 +168,12 @@ class SampleView(QtWidgets.QGraphicsView): if mode is None: return assert mode in ["OpticalScan", "ParticleDetection", "RamanScan", "ParticleAnalysis"] + print("switching to mode:", mode, flush=True) self.oscanwidget.setVisible(False) if self.detectionwidget is not None: self.detectionwidget.close() self.detectionwidget.destroy() + self.detectionwidget = None self.ramanwidget.setVisible(False) self.contouritem.resetContours([]) self.mode = mode @@ -186,6 +188,7 @@ class SampleView(QtWidgets.QGraphicsView): self.detectionwidget.show() self.detectionwidget.imageUpdate.connect(self.detectionUpdate) self.detectionwidget.detectionFinished.connect(self.activateMaxMode) + self.detectionwidget.setVisible(True) elif mode == "RamanScan": self.ramanwidget.resetDataset(self.dataset) @@ -313,8 +316,8 @@ class SampleView(QtWidgets.QGraphicsView): x, y, z = self.dataset.mapToLengthRaman([p0.x(), p0.y()], microscopeMode=self.microscopeMode, noz=(False if self.mode=="RamanScan" else True)) - if z is not None: - assert z>-100. + #if z is not None: + # assert z>-100. self.ramanctrl.moveToAbsolutePosition(x, y, z) elif event.button()==QtCore.Qt.LeftButton and self.mode=="ParticleDetection": p0 = self.mapToScene(event.pos()) @@ -534,4 +537,4 @@ class SampleView(QtWidgets.QGraphicsView): self.scene().removeItem(item) self.ramanscanitems = [] - \ No newline at end of file + diff --git a/zeissimporter.py b/zeissimporter.py index 761e697960416c84cf89865457f48e3dc076e459..8f2f54feb1e2df928615e14877b26f38f3580d96 100644 --- a/zeissimporter.py +++ b/zeissimporter.py @@ -20,11 +20,11 @@ If not, see . """ import os from PyQt5 import QtCore, QtWidgets -from zeissxml import ZeissHandler, make_parser -from opticalscan import PointCoordinates -from helperfunctions import cv2imread_fix, cv2imwrite_fix -from ramancom.ramancontrol import defaultPath -from dataset import DataSet +from .zeissxml import ZeissHandler, make_parser +from .opticalscan import PointCoordinates +from .helperfunctions import cv2imread_fix, cv2imwrite_fix +from .ramancom.ramancontrol import defaultPath +from .dataset import DataSet from scipy.optimize import least_squares from itertools import permutations import cv2