东方耀AI技术分享
标题:
如何区分彩色图片和灰度图片(同样都是3通道的情况)
[打印本页]
作者:
东方耀
时间:
2020-9-23 17:14
标题:
如何区分彩色图片和灰度图片(同样都是3通道的情况)
如何区分彩色图片和灰度图片(同样都是3通道的情况)
# -*- coding: utf-8 -*-
__author__ = u'江锦炬 微信:715781570'
__date__ = '2020/9/23 下午4:42'
__product__ = 'PyCharm'
__filename__ = 'dfy_test_true_person_pass_rate'
import os
import cv2
import numpy as np
# 如何区分彩色图片和灰度图片(同样都是3通道的情况)
def is_Gray(chip):
# chip_gray = cv2.cvtColor(chip,cv2.COLOR_BGR2GRAY)
r, g, b = cv2.split(chip)
r = r.astype(np.float32)
g = g.astype(np.float32)
b = b.astype(np.float32)
s_w, s_h = r.shape[:2]
x = (r + b + g) / 3
area_s = s_w * s_h
# x = chip_gray
r_gray = abs(r - x)
g_gray = abs(g - x)
b_gray = abs(b - x)
r_sum = np.sum(r_gray) / area_s
g_sum = np.sum(g_gray) / area_s
b_sum = np.sum(b_gray) / area_s
gray_degree = (r_sum + g_sum + b_sum) / 3
if gray_degree < 1.0:
# 灰度图片
return True, gray_degree
else:
# 彩色图片
return False, gray_degree
img_path = "/media/jiang/AI_DataSets/DataSets/nir_rgb_original_data/sw-hdr-sm/rgb_sw_hdr_sm_20200607/001X29/1.jpg"
img_path1 = "/media/jiang/AI_DataSets/DataSets/nir_rgb_original_data/sw-hdr-sm/rgb_sw_hdr_sm_20200607/001X29/2.jpg"
img = cv2.imread(img_path)
print(img.shape)
cv2.imshow("ori", img)
cv2.waitKey(0)
ret, value = is_Gray(img)
# 彩色图片 结果: False 8.359733153292181
# 灰度图片 结果: True 0.03208879886831276
print("结果:", ret, value)
复制代码
欢迎光临 东方耀AI技术分享 (http://www.ai111.vip/)
Powered by Discuz! X3.4