基于opencv写一个输出图像直方图的python程序
时间: 2023-04-10 16:00:40 浏览: 141
好的,我可以回答这个问题。以下是一个基于OpenCV的Python程序,用于输出图像的直方图:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读取图像
img = cv2.imread('image.jpg')
# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 计算直方图
hist = cv2.calcHist([gray], [0], None, [256], [0, 256])
# 绘制直方图
plt.hist(gray.ravel(), 256, [0, 256])
plt.show()
```
这个程序使用OpenCV库读取图像,将其转换为灰度图像,然后使用`cv2.calcHist()`函数计算直方图。最后,使用Matplotlib库绘制直方图并显示出来。
相关问题
用opencv与python写一个绘制图像直方图的程序
好的,可以使用以下代码:
```python
import cv2
from matplotlib import pyplot as plt
# Read image
img = cv2.imread('image.jpg')
# Convert image to grayscale
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Calculate histogram
hist = cv2.calcHist([gray_img], [0], None, [256], [0, 256])
# Plot histogram
plt.plot(hist)
plt.xlim([0, 256])
plt.show()
```
也可以使用numpy和matplotlib库来生成图像直方图:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# Read image
img = cv2.imread('image.jpg')
# Convert image to grayscale
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Calculate histogram
hist, bins = np.histogram(gray_img.ravel(), 256, [0, 256])
# Plot histogram
plt.hist(gray_img.ravel(), 256, [0, 256])
plt.show()
```
以上两个程序的功能是一样的,可以根据自己的喜好来选择哪一个来使用。
python绘制灰度图片直方图-opencv+python 统计及绘制直方图
好的,下面是回答:
要绘制灰度图片的直方图,可以使用OpenCV和Python来进行统计和绘制。
首先,需要读取灰度图像,并使用OpenCV的calcHist函数来计算直方图。代码如下:
```
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('image.jpg', 0)
hist = cv2.calcHist([img],[0],None,[256],[0,256])
```
这里使用了calcHist函数来计算输入图像img的灰度直方图,其中[0]表示只统计一个通道,None表示没有使用掩码,[256]表示直方图的bin数量,[0,256]表示像素值范围。
得到直方图后,可以使用matplotlib的plot函数来绘制直方图。代码如下:
```
plt.hist(img.ravel(),256,[0,256])
plt.show()
```
其中img.ravel()是将灰度图像展平成一维数组,256表示bin数量,[0,256]表示像素值范围。
最终的代码如下:
```
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('image.jpg', 0)
# calculate histogram
hist = cv2.calcHist([img],[0],None,[256],[0,256])
# plot histogram
plt.hist(img.ravel(),256,[0,256])
plt.show()
```
通过这个代码,可以绘制出输入灰度图像的直方图。
阅读全文