Beispiel #1
0
 def lighten_area_around(self, image, offset, x, y):
     half_radius = self.parent.reductionNeighborhoodWalkify.value()
     min_x = Mapping.clip_value(x - half_radius, half_radius,
                                image.width() - half_radius)
     max_x = Mapping.clip_value(x + half_radius, half_radius,
                                image.width() - half_radius)
     min_y = Mapping.clip_value(y - half_radius, half_radius,
                                image.height() - half_radius)
     max_y = Mapping.clip_value(y + half_radius, half_radius,
                                image.height() - half_radius)
     adjustbrightness = self.parent.localBrightnessAdjustmentWalkify.value()
     myset = set()
     for s in range(int(round(half_radius / 2))):
         myset.add(s)
         myset.add(-s)
     for comb in combinations(myset, 2):
         inv_distance = 2 * max(myset) - (abs(comb[0]) + abs(comb[1]))
         modfactor = half_radius * inv_distance
         self.lighten_one_pixel(image, adjustbrightness * modfactor,
                                x + comb[0], y + comb[1])
     for el in myset:
         inv_distance = 2 * max(myset) - (2 * abs(el))
         modfactor = half_radius * inv_distance
         self.lighten_one_pixel(image, adjustbrightness * modfactor, x + el,
                                y + el)
Beispiel #2
0
    def find_darkest_neighbor(self, image, cx, cy):
        darkest_neighbor = 256
        half_radius = self.parent.reductionNeighborhoodWalkify.value()
        min_x = Mapping.clip_value(cx - half_radius, half_radius,
                                   image.width() - half_radius)
        min_y = Mapping.clip_value(cy - half_radius, half_radius,
                                   image.height() - half_radius)
        max_x = Mapping.clip_value(cx + half_radius, half_radius,
                                   image.width() - half_radius)
        max_y = Mapping.clip_value(cy + half_radius, half_radius,
                                   image.height() - half_radius)

        for x in range(min_x, max_x + 1):
            for y in range(min_y, max_y + 1):
                distance = sqrt((x - cx)**2 + (y - cy)**2)
                if distance < half_radius:
                    currcolor = qGray(image.pixel(x, y)) + random() * 0.01
                    if currcolor < darkest_neighbor:
                        darkest_x = x
                        darkest_y = y
                        darkest_neighbor = currcolor
        return darkest_x, darkest_y, darkest_neighbor
Beispiel #3
0
 def lighten_one_pixel(self, image, offset, x, y):
     currcolor = qGray(image.pixel(x, y))
     newcolor = Mapping.clip_value(currcolor + offset, 0, 255)
     image.setPixelColor(x, y, QColor(newcolor, newcolor, newcolor))