opencv python 2 d直方图的示例代码

  

直方图- 3:二维直方图

  

我们已经计算并绘制了一维直方图,因为我们只考虑一个特征,即像素的灰度强度值。但在二维直方图中,需要考虑两个特征,通常,它用于查找颜色直方图,其中两个要素是每个像素的色调和饱和度值。

  

  

使用函数<代码>简历。calcHist()>   

      <李>频道=[0,1]:因为我们需要同时处理H(色调色调)和S(饱和度饱和度)。   <李>垃圾箱=[180256]:180对应H, 256对应美国   <李>=(0180、0256)范围:色调值介于0到180之间,饱和度介于0到256之间。   
        进口cv2   进口numpy np   从matplotlib进口pyplot plt      img=cv2.imread (“img.jpg”)      cv2.COLOR_BGR2HSV hsv=cv2.cvtColor (img)      嘘=cv2。calcHist ([0, 1], (hsv), (180、256), [0, 180, 0, 256])      

  

<代码> np.histogram2d()> np.histogram() )

  

代码如下:嘘,xbins ybins=np.histogram2d (h.ravel (), s.ravel (), [180256], [[0180], [0256]])

  

第一个参数是H平面,第二个是年代平面,第三个是每个垃圾箱的数量,第四个是它们的范围

  

  

方法- 1:使用<代码> cv.imshow()

  

我们得到的结果是一个大小为180 x256的二维数组。因此我们可以像使用cv.imshow()函数一样正常显示它们。它将是一个灰度图像,它不会告诉你什么颜色,除非你知道不同颜色的色调。

  

方法2:使用Matplotlib

  

我们可以使用<代码> matplotlib.pyplot.imshow() 函数绘制具有不同颜色图的二维直方图。它让我们更好地了解不同的像素密度,但是,除非你知道不同颜色的色调值,否则这也不会让我们知道第一眼看到的是什么颜色。它简单而且更好。
  代码:

        进口cv2   进口numpy np   从matplotlib进口pyplot plt      img=cv2.imread (“img6.png”)      cv2.COLOR_BGR2HSV hsv=cv2.cvtColor (img)      嘘=cv2。calcHist ([0, 1], (hsv), [180256], [0180、0256])      plt。imshow(嘘,插值=白罱?   plt.show ()      

 opencv python 2 d直方图的示例代码

  

 opencv python 2 d直方图的示例代码”> <br/>
  </p>
  <p>在直方图中,你可以看到H=100和S=200附近的一些高值,它对应于天空的蓝色。同样,在H=25和S=100附近也可以看到另一个峰值,它对应着宫殿的黄色。</p>
  <p>方法3:OpenCV样本风格</p>
  <p>在Opencv-Python2样本中有一个用于颜色直方图的示例代码(样本/python/color_histogram.py)。如果您运行代码,您可以看到直方图显示相应的颜色,或者简单地输出一个颜色编码的直方图。它的结果非常好(尽管您需要添加一些额外的行)。<br/>
  在这段代码中,作者在HSV中创建了一个彩色地图,然后将其转换为BGR,生成的直方图图像与此颜色图相乘,他还使用一些预处理步骤来移除小的孤立像素,从而形成一个良好的直方图。</p>
  <p> <img src=

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

opencv python 2 d直方图的示例代码