查找轮廓内图像的平均像素强度值

Finding mean pixel intensity value of an image inside a contour

我在图像中找到了特定的轮廓。我创建了一个蒙版,除了轮廓的边界点外,整个图像都是黑色的。轮廓已完美映射。点击here查看创建的等高线图片

现在我想转到原始图像并获取原始图像轮廓内所有点的平均像素强度值。 当我使用 cv.mean() 函数时,我是否只获得掩码指定点的平均值,即仅边界点或掩码内的所有点?

最简单的方法是在图像中挑选出与蒙版为白色的地方相对应的像素。如果您想要边界上的像素,请使用您显示的蒙版。如果您想要边界内(和边界上)的像素;将其绘制为填充轮廓 (thickness=-1)。这是一个例子:

img = cv2.imread('image.jpg')
mask = cv2.imread('mask.png', 0)
locs = np.where(mask == 255)
pixels = img[locs]
print(np.mean(pixels))