基于opencv写一个输出图像直方图的python程序
时间: 2023-04-10 09:00:40 浏览: 97
好的,我可以回答这个问题。以下是一个基于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实现直方图均衡化的步骤如下:
1. 导入必要的库:cv2、numpy和matplotlib.pyplot。
2. 读取图像并将其转换为灰度图像。
3. 计算原始图像的直方图并绘制。
4. 使用cv2.equalizeHist()函数进行直方图均衡化。
5. 计算均衡化后图像的直方图并绘制。
6. 显示原始图像和均衡化后的图像。
下面是一个简单的Python代码示例,用于实现直方图均衡化:
```
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取图像并将其转换为灰度图像
img = cv2.imread('bee.jpg', cv2.IMREAD_GRAYSCALE)
# 计算原始图像的直方图并绘制
hist = cv2.calcHist([img], [0], None, [256], [0, 255])
plt.figure(figsize=(10, 5))
plt.title('Original_Hist')
plt.plot(hist, color='b')
# 使用cv2.equalizeHist()函数进行直方图均衡化
img2 = cv2.equalizeHist(img)
# 计算均衡化后图像的直方图并绘制
hist = cv2.calcHist([img2], [0], None, [256], [0, 255])
plt.figure(figsize=(10, 5))
plt.title('EqualizeHist_Hist')
plt.plot(hist, color='k')
# 显示原始图像和均衡化后的图像
cv2.imshow('original', img)
cv2.imshow('EqualizeHist', img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
```