コード例 #1
0
    def __compute_components_for_negative_images(self):
        self.logger.log("Loading negative images")
        images = general.load_images_from_folder(self.path_train + "/" +
                                                 "train_images_ns")

        self.logger.log("\nExtracting values from negative images")
        for current_index in range(len(images)):
            self.logger.log_progress(current_index, len(images))
            image = images[current_index]

            image = general.convert_color(image, self.color_space)
            mask = np.zeros(image.shape)
            self.__get_components_from_image_mask(image, mask)
コード例 #2
0
    def detect(self, image, threshold):
        new_image = general.generate_overlay_image(image)

        image = general.convert_color(image, self.model.color_space)

        rows = image.shape[0]
        cols = image.shape[1]
        for x_pixel in range(rows):
            for y_pixel in range(cols):
                self.logger.log_progress_pixel(x_pixel, y_pixel, rows, cols)

                pixel = image[x_pixel, y_pixel]
                prob = ProbabilityCalculator.calculate_for_pixel(pixel, self.model.components)

                if prob > threshold:
                    new_image[x_pixel, y_pixel] = [0, 0, 0]
        return new_image
コード例 #3
0
    def extract_non_skin_pixels(self):
        self.logger.log("Calculating bayes spm components for nonskin images")
        non_skin_images = general.load_images_from_folder(
            self.path_negative_images)
        for image in non_skin_images:
            image = general.convert_color(image, self.color_space)

            rows = image.shape[0]
            cols = image.shape[1]
            for x_pixel in range(rows):
                for y_pixel in range(cols):
                    self.non_skin_pixels += 1
                    pixel = image[x_pixel, y_pixel]
                    p = Pixel(F1=pixel[0], F2=pixel[1], F3=pixel[2])
                    if p in self.appearances:
                        self.appearances[p] += 1
                    else:
                        self.appearances[p] = 1
コード例 #4
0
    def detect(self, image, superpixels, threshold):
        new_image = general.generate_overlay_image(image)
        image = general.convert_color(image, self.model.color_space)

        pos = 0
        for center in superpixels:  # iterate superpixels
            pos += 1
            self.logger.log_progress(pos, len(superpixels))

            superpixel = superpixels[center]
            average_prob = self.__calculate_superpixel_average(superpixel, image)

            # determine based on max probability if the region is classified as skin
            if average_prob > threshold:
                for pixel_pos in superpixel.get_pixels_pos():
                    x_pixel, y_pixel = pixel_pos[0], pixel_pos[1]
                    new_image[x_pixel, y_pixel] = [0, 0, 0]

        return new_image
コード例 #5
0
    def __compute_components_for_positive_images(self):
        self.logger.log("Loading positive images")

        images = general.load_images_from_folder(self.path_train + "/" +
                                                 "train_images")
        masks = general.load_images_from_folder(self.path_train + "/" +
                                                "train_masks")

        self.logger.log("\nExtracting values from positive images")
        for current_index in range(len(images)):
            self.logger.log_progress(current_index, len(images))
            image = images[current_index]
            mask = masks[current_index]

            image = general.convert_color(image, self.color_space)
            try:
                self.__get_components_from_image_mask(image, mask)
            except IndexError:
                self.logger.log(str(current_index) + " mask is corrupted")