如何测量独特 ROI 中的 RGB 均值?
How do I measure RGB mean in a unique ROI?
我有两张图片,一张分析图片和一张ROI Mask图片(下面是ROI Mask图片)。
我想做的是测量ROI Mask图像选择的分析图像区域的RGB平均值。我正在使用 for 循环来执行此操作,但它花费的时间太长。
有什么方法可以使这个更简单吗?
import cv2
import numpy as np
from statistics import mean
img=cv2.imread("Analysis.jpg", 1)
mask=cv2.imread("ROI_Mask.jpg", 0)
height = im.shape[0]
width = im.shape[1]
R_value=[]
G_value=[]
B_value=[]
for x in range(width):
for y in range(height):
if mask[y][x]!=0:
b,g,r=img[y][x]
R_value.append(r)
G_value.append(g)
B_value.append(b)
else:
pass
print(np.mean(R_value))
您可以像这样通过 boolean indexing 向量化您的代码:
b = mask > 0
B_value, G_value, R_value = img[b].T
print(R_value.mean())
我有两张图片,一张分析图片和一张ROI Mask图片(下面是ROI Mask图片)。
我想做的是测量ROI Mask图像选择的分析图像区域的RGB平均值。我正在使用 for 循环来执行此操作,但它花费的时间太长。
有什么方法可以使这个更简单吗?
import cv2
import numpy as np
from statistics import mean
img=cv2.imread("Analysis.jpg", 1)
mask=cv2.imread("ROI_Mask.jpg", 0)
height = im.shape[0]
width = im.shape[1]
R_value=[]
G_value=[]
B_value=[]
for x in range(width):
for y in range(height):
if mask[y][x]!=0:
b,g,r=img[y][x]
R_value.append(r)
G_value.append(g)
B_value.append(b)
else:
pass
print(np.mean(R_value))
您可以像这样通过 boolean indexing 向量化您的代码:
b = mask > 0
B_value, G_value, R_value = img[b].T
print(R_value.mean())