blur = cv2.blur(image, (5, 5)) # With kernel size depending upon image size
if cv2.mean(blur) > 127: # The range for a pixel's value in grayscale is (0-255), 127 lies midway
return 'light' # (127 - 255) denotes light image
else:
return 'dark' # (0 - 127) denotes dark image
4条答案
按热度按时间vddsk6oq1#
您可以尝试以下操作:
bsxbgnwa2#
你可以试试看,因为
image
是灰度图像-请参考这些-
Smoothing,平均值,阈值
hfsqlsce3#
就我个人而言,我不会为了这么简单的操作而编写任何Python,或者加载OpenCV。如果你一定要使用Python,请忽略这个答案,选择另一个。
您只需在终端的命令行中使用ImageMagick,即可获得图像的平均亮度(以百分比表示),其中100表示 “全白色”,0表示 “全黑”,如下所示:
或者,您可以使用
libvips
,它不太常用,但非常快速且非常轻量级:对于8位图像,
vips
的答案在0..255的范围内。请注意,这两种方法都适用于许多图像类型,从PNG到GIF、JPEG和TIFF。
wh6knrhe4#