东方耀AI技术分享

标题: 如何区分彩色图片和灰度图片(同样都是3通道的情况) [打印本页]

作者: 东方耀    时间: 2020-9-23 17:14
标题: 如何区分彩色图片和灰度图片(同样都是3通道的情况)


如何区分彩色图片和灰度图片(同样都是3通道的情况)




  1. # -*- coding: utf-8 -*-
  2. __author__ = u'江锦炬 微信:715781570'
  3. __date__ = '2020/9/23 下午4:42'
  4. __product__ = 'PyCharm'
  5. __filename__ = 'dfy_test_true_person_pass_rate'


  6. import os
  7. import cv2
  8. import numpy as np

  9. # 如何区分彩色图片和灰度图片(同样都是3通道的情况)

  10. def is_Gray(chip):
  11.     # chip_gray = cv2.cvtColor(chip,cv2.COLOR_BGR2GRAY)
  12.     r, g, b = cv2.split(chip)
  13.     r = r.astype(np.float32)
  14.     g = g.astype(np.float32)
  15.     b = b.astype(np.float32)
  16.     s_w, s_h = r.shape[:2]
  17.     x = (r + b + g) / 3

  18.     area_s = s_w * s_h
  19.     # x = chip_gray
  20.     r_gray = abs(r - x)
  21.     g_gray = abs(g - x)
  22.     b_gray = abs(b - x)
  23.     r_sum = np.sum(r_gray) / area_s
  24.     g_sum = np.sum(g_gray) / area_s
  25.     b_sum = np.sum(b_gray) / area_s
  26.     gray_degree = (r_sum + g_sum + b_sum) / 3
  27.     if gray_degree < 1.0:
  28.         # 灰度图片
  29.         return True, gray_degree
  30.     else:
  31.         # 彩色图片
  32.         return False, gray_degree



  33. img_path = "/media/jiang/AI_DataSets/DataSets/nir_rgb_original_data/sw-hdr-sm/rgb_sw_hdr_sm_20200607/001X29/1.jpg"
  34. img_path1 = "/media/jiang/AI_DataSets/DataSets/nir_rgb_original_data/sw-hdr-sm/rgb_sw_hdr_sm_20200607/001X29/2.jpg"

  35. img = cv2.imread(img_path)

  36. print(img.shape)

  37. cv2.imshow("ori", img)
  38. cv2.waitKey(0)


  39. ret, value = is_Gray(img)
  40. # 彩色图片 结果: False 8.359733153292181
  41. # 灰度图片 结果: True 0.03208879886831276
  42. print("结果:", ret, value)



复制代码









欢迎光临 东方耀AI技术分享 (http://www.ai111.vip/) Powered by Discuz! X3.4