Guest User

Untitled

a guest
Sep 9th, 2020
36
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import cv2
  2.  
  3.  
  4. def invert_font_color(path):
  5.     image = cv2.imread(path, cv2.IMREAD_UNCHANGED)
  6.  
  7.     b, g, r, a = cv2.split(image)
  8.  
  9.     contours, hierarchy = cv2.findContours(a, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
  10.  
  11.     for contour in contours:
  12.         xOffset, yOffset, width, height = cv2.boundingRect(contour)
  13.  
  14.         result = True
  15.  
  16.         # go through every pixel and check if it contains colors that are not transparent
  17.         for x in range(width):
  18.             for y in range(height):
  19.  
  20.                 xpos = xOffset + x
  21.                 ypos = yOffset + y
  22.  
  23.                 if (image[ypos][xpos][0] <= 250 and image[ypos][xpos][1] <= 250 and image[ypos][xpos][2] >= 250) and \
  24.                         image[ypos][xpos][3] != 0:
  25.                     result = False
  26.  
  27.         # if only white, non transparent colors --> Change color to black
  28.         if result:
  29.             for x in range(width - 1):
  30.                 for y in range(height - 1):
  31.                     xpos = xOffset + x
  32.                     ypos = yOffset + y
  33.  
  34.                     if image[ypos][xpos][0] >= 250 and image[ypos][xpos][1] >= 250 and image[ypos][xpos][2] >= 250 and \
  35.                             image[ypos][xpos][3] != 0:
  36.                         image[ypos][xpos][0] = 0
  37.                         image[ypos][xpos][1] = 0
  38.                         image[ypos][xpos][2] = 0
  39.  
  40.     cv2.imwrite("out.png", image)
  41.  
  42.  
  43. if __name__ == '__main__':
  44.     invert_font_color(".\\in.png")
  45.  
RAW Paste Data