【问题标题】:Finding mean pixel intensity value of an image inside a contour查找轮廓内图像的平均像素强度值
【发布时间】:2020-02-19 02:57:35
【问题描述】:
我在图像中找到了特定的轮廓。我创建了一个蒙版,除了轮廓的边界点外,整个图像都是黑色的。轮廓已完美映射。点击here查看创建的轮廓图片。
现在我想转到我的原始图像并获取原始图像轮廓内所有点的平均像素强度值。
当我使用 cv.mean() 函数时,我是只得到掩码指定的点的平均值,即只是边界点还是掩码内的所有点?
【问题讨论】:
标签:
python-3.x
opencv
image-processing
opencv3.0
opencv-drawcontour
【解决方案1】:
最简单的方法是在图像中挑选出与蒙版为白色的位置相对应的像素。如果您想要边界上的像素,请使用您展示的蒙版。如果你想在边界上(和上)像素;将其绘制为填充轮廓(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))