Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 着色问题-打开cv与matplotlib图例的组合_Python_Opencv_Matplotlib - Fatal编程技术网

Python 着色问题-打开cv与matplotlib图例的组合

Python 着色问题-打开cv与matplotlib图例的组合,python,opencv,matplotlib,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[

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

    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中定义的值。不幸的是,我不知道如何定义补丁的颜色


当前结果:

问题是由imshow函数本身引起的,因为它在显示图像之前会对结果进行规范化。
设置vmax和vmin有助于

您是否可以使用一个离散的颜色条,如下面的答案:(),而不是构建图例。