найти вариацию пикселей в регионе - PullRequest
0 голосов
/ 24 сентября 2019

Я хотел бы найти% вариации пикселей RGB или плоскостности

, где 100 означает отсутствие вариаций, а 0 означает полное изменение

по региону (x,y, w, h) где мой эталонный пиксель rgb равен

(128,128,128)

с использованием Python opencv.Будет очень полезно, если кто-нибудь поможет мне, как это сделать

Я пытался добиться с помощью этого псевдокода, но для истинного черного цвета это дает мне результат как 0 вместо 100

  (B, G, R) = cv2.split(image.astype("float"))

  # compute rg = R - G
  rg = np.absolute(R - G)

  # compute yb = 0.5 * (R + G) - B
  yb = np.absolute(0.5 * (R + G) - B)

  # compute the mean and standard deviation of both `rg` and `yb`
  (rbMean, rbStd) = (np.mean(rg), np.std(rg))
  (ybMean, ybStd) = (np.mean(yb), np.std(yb))

  # combine the mean and standard deviations
  stdRoot = np.sqrt((rbStd ** 2) + (ybStd ** 2))
  meanRoot = np.sqrt((rbMean ** 2) + (ybMean ** 2))

  # derive the "colorfulness" metric and return it
  return stdRoot + (0.3 * meanRoot)
...