着色问题 - open cv与matplotlib图例的组合

时间:2016-08-23 08:11:34

标签: python opencv matplotlib

我正在尝试手动为图像中绘制的几个矩形创建图例。但我对着色感到困惑。

    color_step = 255/(len(contours)+1)

    patch =[]
    for cnt_idx, cnt in enumerate(contours):
        cnt_color = color_step * (cnt_idx+1)
        cv2.rectangle(img,(cnt['x'],cnt['y']), \
        (cnt['x']+cnt['w'], \
        cnt['y']+cnt['h']),cnt_color,thickness)

        patch.append(mpatches.Patch(color = (cnt_color/255.0,cnt_color/255.0,cnt_color/255.0 ), label='%d' %cnt_idx))

最后我打电话给:

patch = np.array(patch)
plt.legend(handles=patch)
plt.imshow(img, interpolation = 'none', cmap='gray')

我发现,cv2.rectangle方法只是在cnt_color中定义的值在矩形的特定位置。不幸的是,我不知道如何定义补丁的颜色。​​

目前的结果:enter image description here

1 个答案:

答案 0 :(得分:0)

问题是由imshow函数本身引起的,因为它在显示图像之前将结果标准化。 设置vmax和vmin帮助