我正在尝试手动为图像中绘制的几个矩形创建图例。但我对着色感到困惑。
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中定义的值在矩形的特定位置。不幸的是,我不知道如何定义补丁的颜色。
答案 0 :(得分:0)
问题是由imshow函数本身引起的,因为它在显示图像之前将结果标准化。 设置vmax和vmin帮助