def get_snapshot(self, bw=None, return_as_array=None):
        qimage = QImage(self.image)
        if return_as_array:
            qimage = qimage.convertToFormat(4)
            ptr = qimage.bits()
            ptr.setsize(qimage.byteCount())

            image_array = np.array(ptr).reshape(qimage.height(), qimage.width(), 4)
            if bw:
                return np.dot(image_array[...,:3], [0.299, 0.587, 0.144])
            else:
                return image_array
        else:
            if bw:
                return qimage.convertToFormat(QImage.Format_Mono)
            else:
                return qimage
예제 #2
0
    def get_snapshot(self, bw=None, return_as_array=None):
        qimage = QImage(self.image)
        if return_as_array:
            qimage = qimage.convertToFormat(4)
            ptr = qimage.bits()
            ptr.setsize(qimage.byteCount())

            image_array = np.array(ptr).reshape(qimage.height(),
                                                qimage.width(), 4)
            if bw:
                return np.dot(image_array[..., :3], [0.299, 0.587, 0.144])
            else:
                return image_array
        else:
            if bw:
                return qimage.convertToFormat(QImage.Format_Mono)
            else:
                return qimage
예제 #3
0
class VaporyVideo(BaseHardwareObjects.Device):
    """
    Descript. :
    """

    def __init__(self, name):
        """
        Descript. :
        """
        BaseHardwareObjects.Device.__init__(self, name)
        self.force_update = None
        self.image_dimensions = None
        self.image_polling = None
        self.image_type = None
        self.qimage = None

    def init(self):
        """
        Descript. :
        """
        self.vapory_camera = vapory.Camera("location", [0, 2, -3], "look_at", [0, 1, 2])
        self.vapory_light = vapory.LightSource([2, 4, -3], "color", [1, 1, 1])

        self.simulated_loop = SimulatedLoop()
        self.simulated_loop.set_position(0, 0, 0)

        self.force_update = False
        self.image_dimensions = [600, 400]
        self.image_type = JpegType()
        self.setIsReady(True)
        self.generate_image()

        self.image_polling = gevent.spawn(self._do_imagePolling, 1)

    def rotate_scene_absolute(self, angle):
        self.simulated_loop.set_position(angle, 0, 0)
        self.generate_image()

    def rotate_scene_relative(self, angle):
        return

    def generate_image(self):
        self.vapory_sene = vapory.Scene(
            self.vapory_camera,
            objects=[self.vapory_light, self.simulated_loop.loop_object],
        )
        image_array = self.vapory_sene.render(
            "/tmp/vapory_tmp_image.png",
            width=self.image_dimensions[0],
            height=self.image_dimensions[1],
        )
        self.qimage = QImage("/tmp/vapory_tmp_image.png")
        self.emit(
            "imageReceived",
            self.qimage,
            self.qimage.width(),
            self.qimage.height(),
            self.force_update,
        )

    def imageType(self):
        """
        Descript. :
        """
        return self.image_type

    def contrastExists(self):
        """
        Descript. :
        """
        return

    def setContrast(self, contrast):
        """
        Descript. :
        """
        return

    def getContrast(self):
        """
        Descript. :
        """
        return

    def getContrastMinMax(self):
        """
        Descript. :
        """
        return

    def brightnessExists(self):
        """
        Descript. :
        """
        return

    def setBrightness(self, brightness):
        """
        Descript. :
        """
        return

    def getBrightness(self):
        """
        Descript. :
        """
        return

    def getBrightnessMinMax(self):
        """
        Descript. :
        """
        return

    def gainExists(self):
        """
        Descript. :
        """
        return

    def setGain(self, gain):
        """
        Descript. :
        """
        return

    def getGain(self):
        """
        Descript. :
        """
        return

    def getGainMinMax(self):
        """
        Descript. :
        """
        return

    def gammaExists(self):
        """
        Descript. :
        """
        return

    def setGamma(self, gamma):
        """
        Descript. :
        """
        return

    def getGamma(self):
        """
        Descript. :
        """
        return

    def getGammaMinMax(self):
        """
        Descript. :
        """
        return (0, 1)

    def setLive(self, mode):
        """
        Descript. :
        """
        return

    def getWidth(self):
        """
        Descript. :
        """
        return self.image_dimensions[0]

    def getHeight(self):
        """
        Descript. :
        """
        return self.image_dimensions[1]

    def _do_imagePolling(self, sleep_time):
        """
        Descript. :
        """
        while True:
            image_array = self.vapory_sene.render(
                "/tmp/vapory_tmp_image.png",
                width=self.image_dimensions[0],
                height=self.image_dimensions[1],
            )
            self.qimage = QImage("/tmp/vapory_tmp_image.png")
            self.emit(
                "imageReceived",
                self.qimage,
                self.qimage.width(),
                self.qimage.height(),
                self.force_update,
            )
            time.sleep(sleep_time)
예제 #4
0
class VaporyVideo(BaseHardwareObjects.Device):
    """
    Descript. :
    """
    def __init__(self, name):
        """
        Descript. :
        """
        BaseHardwareObjects.Device.__init__(self, name)
        self.force_update = None
        self.image_dimensions = None
        self.image_polling = None
        self.image_type = None
        self.qimage = None

    def init(self):
        """
        Descript. :
        """
        self.vapory_camera = vapory.Camera('location', [0, 2, -3], 'look_at',
                                           [0, 1, 2])
        self.vapory_light = vapory.LightSource([2, 4, -3], 'color', [1, 1, 1])

        self.simulated_loop = SimulatedLoop()
        self.simulated_loop.set_position(0, 0, 0)

        self.force_update = False
        self.image_dimensions = [600, 400]
        self.image_type = JpegType()
        self.setIsReady(True)
        self.generate_image()

        self.image_polling = gevent.spawn(self._do_imagePolling, 1)

    def rotate_scene_absolute(self, angle):
        self.simulated_loop.set_position(angle, 0, 0)
        self.generate_image()

    def rotate_scene_relative(self, angle):
        return

    def generate_image(self):
        self.vapory_sene = vapory.Scene(
            self.vapory_camera,
            objects=[self.vapory_light, self.simulated_loop.loop_object])
        image_array = self.vapory_sene.render("/tmp/vapory_tmp_image.png",
                                              width=self.image_dimensions[0],
                                              height=self.image_dimensions[1])
        self.qimage = QImage("/tmp/vapory_tmp_image.png")
        self.emit("imageReceived", self.qimage, self.qimage.width(),
                  self.qimage.height(), self.force_update)

    def imageType(self):
        """
        Descript. :
        """
        return self.image_type

    def contrastExists(self):
        """
        Descript. :
        """
        return

    def setContrast(self, contrast):
        """
        Descript. :
        """
        return

    def getContrast(self):
        """
        Descript. :
        """
        return

    def getContrastMinMax(self):
        """
        Descript. :
        """
        return

    def brightnessExists(self):
        """
        Descript. :
        """
        return

    def setBrightness(self, brightness):
        """
        Descript. :
        """
        return

    def getBrightness(self):
        """
        Descript. :
        """
        return

    def getBrightnessMinMax(self):
        """
        Descript. :
        """
        return

    def gainExists(self):
        """
        Descript. :
        """
        return

    def setGain(self, gain):
        """
        Descript. :
        """
        return

    def getGain(self):
        """
        Descript. :
        """
        return

    def getGainMinMax(self):
        """
        Descript. :
        """
        return

    def gammaExists(self):
        """
        Descript. :
        """
        return

    def setGamma(self, gamma):
        """
        Descript. :
        """
        return

    def getGamma(self):
        """
        Descript. :
        """
        return

    def getGammaMinMax(self):
        """
        Descript. :
        """
        return (0, 1)

    def setLive(self, mode):
        """
        Descript. :
        """
        return

    def getWidth(self):
        """
        Descript. :
        """
        return self.image_dimensions[0]

    def getHeight(self):
        """
        Descript. :
        """
        return self.image_dimensions[1]

    def _do_imagePolling(self, sleep_time):
        """
        Descript. :
        """
        while True:
            image_array = self.vapory_sene.render(
                "/tmp/vapory_tmp_image.png",
                width=self.image_dimensions[0],
                height=self.image_dimensions[1])
            self.qimage = QImage("/tmp/vapory_tmp_image.png")
            self.emit("imageReceived", self.qimage, self.qimage.width(),
                      self.qimage.height(), self.force_update)
            time.sleep(sleep_time)