我想获得图像某个区域的中位数。我有该区域的半径和中心坐标。我怎样才能找到圆圈的所有坐标,以便我可以做到:
np.median(pic[args])
答案 0 :(得分:3)
要使用蒙版获得给定单通道图像的中位数,您必须首先准备与原始图像大小相同的蒙版:
mask = np.zeros(original_image.shape, np.uint8)
center = (500, 500)
radius = 100
cv2.circle(mask, center, radius, 255, -1)
现在你在面具上有一个强度值= 255的刻圆,现在使用np.where
我们得到{,1}}的x,y索引值集合,然后使用这些来访问强度值原始图像中的索引返回一个强度值的单维数组,并使用mask==255
得到最终的中值。
np.median()
答案 1 :(得分:0)
使用numpy.ma.median可能更容易。要创建蒙版,您只需使用cv2.circle,用所有的矩阵初始化矩阵,然后用零绘制圆圈。