【发布时间】:2019-05-12 04:11:47
【问题描述】:
我有多个圆圈的图像,圆圈内有热点区域,高强度(高像素值)和冷点区域(低像素值)。我想用 Python 中的 OpenCV 计算每个圆的加权质心。我正在使用这段代码:
im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
# calculate moments for each contour
M = cv2.moments(c)
# calculate x,y coordinate of center
if M["m00"] != 0:
cX = int(M["m10"] / M["m00"])
cY = int(M["m01"] / M["m00"])
else:
cX, cY = 0, 0
好的,所以这段代码只是取二进制图像,提取所有圆并找到每个圆的轮廓。
问题是我需要找到 RGB/灰度图像(考虑像素强度)的加权质心,而不是二值图像。我怎样才能做到这一点?
谢谢!
【问题讨论】:
-
我认为OpenCV可以取图像的强度值。因此,您需要创建具有所需强度的轮廓点的图像。我还没有尝试过,但它可能很容易测试......如果它是RGB,那么你可以尝试先将其转换为灰度以获得强度,或使用其他类型的权重,如饱和度或亮度