Commit 2c03c3ce authored by Josef Brandt's avatar Josef Brandt
Browse files

Preparation for reorganizing contours and scanIndices

Have it managed by the particle!
parent ca5e6bad
Loading
Loading
Loading
Loading
+2 −29
Original line number Diff line number Diff line
@@ -23,10 +23,6 @@ from PyQt5 import QtWidgets, QtGui, QtCore
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
import os
import numpy as np

from analysis import importSpectra


class ParticleIndicator(QtWidgets.QPushButton):
@@ -132,31 +128,8 @@ class SpectraPlot(QtWidgets.QGroupBox):
        self.setLayout(layout)
        
    def loadSpectraAndInitializeSpecPlot(self):  #formerly updateData(self)....
#        def tryLoadingNumpySpecFile():
#            specPath = self.dataset.getSpectraFileName()
#            if os.path.exists(specPath):
#                return np.load(specPath)
#            else:
#                raise ImportError
#        try:
#            self.spectra = tryLoadingNumpySpecFile()
#        except ImportError:
#            
#            fname = QtWidgets.QFileDialog.getOpenFileName(QtWidgets.QWidget(), 'Select Spectra File', self.dataset.path, 'text file (*.txt)')[0]
#    
#            try:
#                self.spectra, spectraNames = importSpectra.importWITecSpectra(fname)
#            except ImportError:
#                try:
#                    self.spectra, spectraNames = importSpectra.importRenishawSpectra(fname)
#                except ImportError:
#                    self.spectra, spectraNames = importSpectra.importPerkinElmerSpectra(fname)
#                
#            if self.spectra is None:
#                raise ImportError
#            else:
#                np.save(self.dataset.getSpectraFileName(), self.spectra)
 
        self.spectra = self.dataset.particleContainer.spectra
        assert self.spectra is not None
        self.canvas.draw()
        
    def updateParticleSpectrum(self, specIndex, particleSize, hqi):
+2 −3
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as Navigatio
from .analysiswidgets import ExpExcelDialog
from .analysisplots import TypeHistogramView, SpectraPlot
from .loadresults import LoadTrueMatchResults
from .particleeditor import ParticleEditor
from .database import DataBaseWindow
from .colorlegend import getColorFromNameWithSeed

@@ -56,7 +55,6 @@ class ParticleAnalysis(QtWidgets.QMainWindow):
        self.viewparent = viewparent
        self.dataset = dataset
        self.particleContainer = dataset.particleContainer
        self.editor = ParticleEditor(self.particleContainer, self)
        
#        self.additivePlot = None
        self.importWindow = None
@@ -221,6 +219,7 @@ class ParticleAnalysis(QtWidgets.QMainWindow):
        self.createMenus()
        self.applyHQIThresholdToResults()
        self.createHistogramData()
        self.particleContainer.loadSpectra()
        self.initializeSpecPlot()
        self.setTypeSelector()
        self.updateHistogramsAndContours()
@@ -556,7 +555,7 @@ class ParticleAnalysis(QtWidgets.QMainWindow):
        self.currentParticleIndex = particleIndex
        partIndices = self.particleContainer.getIndicesOfParticleType(assignment)
        self.particleSelector.setMaximum(len(partIndices))
        
        self.particleNumberLabel.setText(f'of {len(partIndices)} particles; ')
        
        self.particleSelector.setValue(partIndices.index(particleIndex)+1)
        
+7 −19
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ along with this program, see COPYING.
If not, see <https://www.gnu.org/licenses/>.
"""
import numpy as np

from viewitems import SegmentationContour, RamanScanIndicator

class Particle(object):
    def __init__(self):
@@ -35,23 +35,9 @@ class Particle(object):
        self.viewItem = None
    
    def addMeasurement(self, refToMeasurement):
        refToMeasurement.assignedParticle = self
        self.measurements.append(refToMeasurement)

#    def addExistingMeasurement(self, meas):
#        self.measurements.append(meas)
#    
#    def addEmptyMeasurement(self):
#        self.measurements.append(Measurement())
#        indexOfNewMeasurment = len(self.measurements)-1
#        return indexOfNewMeasurment
    
#    def setMeasurementScanIndex(self, indexOfMeasurment, scanIndex):
#        self.measurements[indexOfMeasurment].ramanScanIndex = scanIndex
#    
#    def setMeasurementPixelCoords(self, indexOfMeasurment, x, y):
#        self.measurements[indexOfMeasurment].pixelcoord_x= x
#        self.measurements[indexOfMeasurment].pixelcoord_y = y
#
    def setAllSpectraToNewAssignment(self, newAssignment):
        for meas in self.measurements:
            meas.setAssignment(newAssignment)
@@ -127,8 +113,8 @@ class Particle(object):
        for measurement in self.measurements:
            measurement.applyHQIThreshold(minHQI)
    
#    def recreateViewItem(self):
#        pass
    def recreateViewItem(self):
        self.viewItem = SegmentationContour()
            
    
class Measurement(object):
@@ -142,6 +128,8 @@ class Measurement(object):
        self.assignment_afterHQI = None
        self.hqi = None
        
        self.assignedParticle = None
    
    def setAssignment(self, assignment):
        self.assignment_orig = assignment
        self.applyHQIThreshold()
+5 −4
Original line number Diff line number Diff line
@@ -178,9 +178,10 @@ class ParticleContainer(object):
    
    def getMeasurementPixelCoords(self):
        coords = []
        for particle in self.particles:
            for measurement in particle.getMeasurements():
                coords.append([measurement.pixelcoord_x, measurement.pixelcoord_y])
#        for particle in self.particles:
#            for measurement in particle.getMeasurements():
        for meas in self.measurements:
                coords.append([meas.pixelcoord_x, meas.pixelcoord_y])
        return coords
    
    def getNumberOfParticlesOfAssignment(self, assignment):
@@ -269,7 +270,7 @@ class ParticleContainer(object):
                if newAssignment is not None:
                    meas.setAssignment(newAssignment)
                    meas.setHQI(100)
                newParticle.addExistingMeasurement(meas)
                newParticle.addMeasurement(meas)
        
        #set Particle Stats
        long, short, longellipse, shortellipse, area = newStats
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ import numpy as np
import cv2
from helperfunctions import cv2imread_fix, cv2imwrite_fix
from copy import copy
from analysis.particleInfo import ParticleContainer
from analysis.particleContainer import ParticleContainer

currentversion = 3

Loading