configures the three color image according to the requested parameters
        :return: nothing, just updates self.image

def configure_threecolor_image(self):
        """
        configures the three color image according to the requested parameters
        :return: nothing, just updates self.image
        """
        order = {'red': 0, 'green': 1, 'blue': 2}
        self.image = np.zeros((self.shape[0], self.shape[1], 3))
        for color, var in self.multicolorvars.items():
            channel = var.get()  # determine which channel should be plotted as this color
            self.image[:, :, order[color]] = self.data[channel]

            # scale the image by the power
            self.image[:, :, order[color]] = np.power(self.image[:, :, order[color]],
                                                      self.multicolorpower[color].get())

            # adjust the percentile thresholds
            lower = np.nanpercentile(self.image[:, :, order[color]], self.multicolormin[color].get())
            upper = np.nanpercentile(self.image[:, :, order[color]], self.multicolormax[color].get())
            self.image[np.where(self.image[:, :, order[color]] < lower)] = lower
            self.image[np.where(self.image[:, :, order[color]] > upper)] = upper

        # image values must be between (0,1) so scale image
        for color, index in order.items():
            self.image[:, :, index] /= np.nanmax(self.image[:, :, index])