如何在只有黑暗的情况下反转图像?

How to invert an image when it is only dark?

我想反转只有深色背景或主题的图像。例如,当我有一个带有深色主题的 GUI window 时,我想反转它的颜色以使其变亮。但是,当它有一个浅色主题时,就保持原样。

我的意思是深色主题不仅是黑色,还有任何其他深色(例如深蓝色)。我找到了一些建议计算零的解决方案,但我认为这仅适用于黑色 backgrounds/themes.

受到这些 post2 的启发,我找到了我需要的解决方案,并测试了我的数据以获得 100% 的准确率。

以下是我使用的代码:

import cv2

def is_img_dark(img):
    #blur = cv2.blur(img, (5, 5))  # With kernel size depending upon image size # You could skip the blur and get exactly the same result

    if cv2.mean(img)[0] > 127:  # The range for a pixel's value in grayscale is (0-255), 127 lies midway
        return False # (127 - 255) denotes light image
    else:
        return True # (0 - 127) denotes dark image

img_file = "THE PATH OF THE IMAGE"
im = cv2.imread(img_file,0) # 0 here to gray the image
if is_img_dark(im):
    im = ~im # invert colors