如何在只有黑暗的情况下反转图像?
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
我想反转只有深色背景或主题的图像。例如,当我有一个带有深色主题的 GUI window 时,我想反转它的颜色以使其变亮。但是,当它有一个浅色主题时,就保持原样。
我的意思是深色主题不仅是黑色,还有任何其他深色(例如深蓝色)。我找到了一些建议计算零的解决方案,但我认为这仅适用于黑色 backgrounds/themes.
受到这些
以下是我使用的代码:
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