Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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

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
在opencv python中绘制直方图_Python_Opencv_Image Processing - Fatal编程技术网

在opencv python中绘制直方图

在opencv python中绘制直方图,python,opencv,image-processing,Python,Opencv,Image Processing,我想通过处理前置摄像头视频来检测车辆的车道偏离。为此,我想水平选择每帧的一条像素线,并分析这些像素的颜色如何变化。为此,我想画R,G,B通道的直方图,它在x轴上有从左到右的像素数,在y轴上有相应的像素值。由于我对这个领域还不熟悉,我想知道如何使用opencv和python为视频中的每一帧绘制直方图?谢谢。这是图像的直方图(opencv+matplotlib): 这里有两个关于绘制3D直方图的例子,可以参考 (一) (二) 如何选择这一像素?是手册吗?你能详细说明一下你到目前为止试过什么吗

我想通过处理前置摄像头视频来检测车辆的车道偏离。为此,我想水平选择每帧的一条像素线,并分析这些像素的颜色如何变化。为此,我想画R,G,B通道的直方图,它在x轴上有从左到右的像素数,在y轴上有相应的像素值。由于我对这个领域还不熟悉,我想知道如何使用opencv和python为视频中的每一帧绘制直方图?谢谢。

这是图像的直方图(opencv+matplotlib):


这里有两个关于绘制3D直方图的例子,可以参考

(一)

(二)


如何选择这一像素?是手册吗?你能详细说明一下你到目前为止试过什么吗?一个像素线?你是说这条线的宽度是一个像素吗?是的。我想选择一行代表道路区域颜色变化的图像。手动选择的路线始终穿过图像的道路区域。感谢您的帮助。是否有一种方法可以将图像中一行的像素移到x轴,将颜色值移到y轴,而不是将每个颜色值的像素总数移到y轴?
#!/usr/bin/python3
# 2017.12.20 14:00:12 CST
# 2018.01.06 19:07:57 CST
import matplotlib.pyplot as plt
import numpy as np
import cv2

img = cv2.imread("test.png")
b,g,r = cv2.split(img)
fig = plt.figure(figsize=(8,4))

ax = fig.add_subplot(121)
ax.imshow(img[...,::-1])

ax = fig.add_subplot(122)
for x, c in zip([b,g,r], ["b", "g", "r"]):
    xs = np.arange(256)
    ys = cv2.calcHist([x], [0], None, [256], [0,256])
    ax.plot(xs, ys.ravel(), color=c)

ax.set_xlabel('X')
ax.set_ylabel('Y')
plt.show()