示例#1
0
    def maskColor(self):
        print("Masking...")

        tolerance = 10
        tolerance = self.sldTol.value()

        self.sldTol.setDisabled(True)
        self.btnCol.setDisabled(True)
        self.btnP1.setDisabled(True)
        self.btnQuit.setDisabled(True)

        chunk = PhotoScan.app.document.chunk
        mask_list = list()
        if self.radioBtn_sel.isChecked():
            for photo in chunk.cameras:
                if photo.selected:
                    mask_list.append(photo)
        elif self.radioBtn_all.isChecked():
            mask_list = list(chunk.cameras)

        if not len(mask_list):
            PhotoScan.app.messageBox("Nothing to mask!")
            return False

        color = self.color
        red, green, blue = color.red(), color.green(), color.blue()

        processed = 0
        for camera in mask_list:

            for frame in camera.frames:
                print(frame)
                app.processEvents()
                mask = PhotoScan.utils.createDifferenceMask(
                    frame.photo.image(), (red, green, blue), tolerance, False)
                m = PhotoScan.Mask()
                m.setImage(mask)
                frame.mask = m
                processed += 1
                self.pBar.setValue(
                    int(processed / len(mask_list) / len(chunk.frames) * 100))

        print("Masking finished. " + str(processed) + " images masked.")

        self.sldTol.setDisabled(False)
        self.btnCol.setDisabled(False)
        self.btnP1.setDisabled(False)
        self.btnQuit.setDisabled(False)

        return True
示例#2
0
import PhotoScan as ps
import os

path = 'PhotoScanProjects/P117_1804_MskHighway_2018_04_09_g201b20087_f001/'
mask_path = path + '/Masks'
files = os.listdir(mask_path)

chunk = ps.app.document.chunk
for camera in chunk.cameras:
    photo = camera.photo
    path = photo.path
    slash_index = path.rfind('/')
    file_name = path[slash_index + 1::]
    if file_name in files:
        if camera.mask:
            print(1)
        else:
            print(0)
            mask = ps.Mask()
            mask.load(mask_path + '/' + file_name)
            camera.mask = mask