cv2.imshow("1", img) cv2.imshow("2", equ) cv2.waitKey() cv2.destroyAllWindows()怎么修改窗口大小
时间: 2024-03-01 16:56:10 浏览: 27
你可以使用cv2.namedWindow()函数来创建一个指定大小的窗口。例如,如果你想要创建一个大小为640x480的窗口,你可以使用以下代码:
```python
cv2.namedWindow("1", cv2.WINDOW_NORMAL)
cv2.resizeWindow("1", 640, 480)
cv2.imshow("1", img)
cv2.namedWindow("2", cv2.WINDOW_NORMAL)
cv2.resizeWindow("2", 640, 480)
cv2.imshow("2", equ)
cv2.waitKey()
cv2.destroyAllWindows()
```
在这个例子中,cv2.WINDOW_NORMAL参数告诉cv2.namedWindow()函数创建一个可以调整大小的窗口。然后,使用cv2.resizeWindow()函数来设置窗口的大小。最后,通过cv2.imshow()函数来显示图像。
相关问题
import cv2 import matplotlib.pyplot as plt img=cv2.imread("1.png") img_gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY,0) equ=cv2.equalizeHist(img_gray) plt.figure("原始灰度直方图") plt.title('Origin') plt.hist(img_gray.ravel(),256) plt.figure("均衡化直方图") plt.title('Equalization') plt.hist(img_gray.ravel(),256) plt.show() cv2.imshow("Gray",img_gray) cv2.imshow("EqualizeHist",equ) cv2.waitKey(0) cv2.destroyAllWindows()给这段代码加上详细的注释
```
# 导入需要的库
import cv2
import matplotlib.pyplot as plt
# 读入图片
img = cv2.imread("1.png")
# 将图片转换为灰度图像
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY, 0)
# 对灰度图像进行直方图均衡化
equ = cv2.equalizeHist(img_gray)
# 绘制原始灰度图像的直方图
plt.figure("原始灰度直方图")
plt.title('Origin')
plt.hist(img_gray.ravel(), 256)
# 绘制直方图均衡化后的图像的直方图
plt.figure("均衡化直方图")
plt.title('Equalization')
plt.hist(img_gray.ravel(), 256)
# 显示绘制出的直方图
plt.show()
# 显示原始灰度图像和直方图均衡化后的图像
cv2.imshow("Gray", img_gray)
cv2.imshow("EqualizeHist", equ)
# 等待键盘输入
cv2.waitKey(0)
# 关闭所有窗口
cv2.destroyAllWindows()
```
注释如上所示,主要包括以下几个步骤:
1. 导入需要的库
2. 读入图片
3. 将图片转换为灰度图像
4. 对灰度图像进行直方图均衡化
5. 绘制原始灰度图像的直方图
6. 绘制直方图均衡化后的图像的直方图
7. 显示绘制出的直方图
8. 显示原始灰度图像和直方图均衡化后的图像
9. 等待键盘输入
10. 关闭所有窗口
import cv2 import matplotlib.pyplot as plt img = cv2.imread("D:\shujuji\guangliang\80Lux\\000031.jpg") blue = img[:, :, 0] green = img[:, :, 1] red = img[:, :, 2] blue_equ = cv2.equalizeHist(blue) green_equ = cv2.equalizeHist(green) red_equ = cv2.equalizeHist(red) equ = cv2.merge([blue_equ, green_equ, red_equ]) cv2.imshow("1",img) cv2.imshow("2",equ) plt.figure("原始图像直方图") plt.hist(img.ravel(), 256) plt.figure("均衡化图像直方图") plt.hist(equ.ravel(), 256) plt.show() cv2.waitKey() cv2.destroyAllWindows()每一句的含义
这是一个 Python 代码段,使用 OpenCV 和 Matplotlib 库对一张图像进行直方图均衡化,并显示原始图像和均衡化后的图像以及它们的直方图。
具体每一句的含义如下:
```python
import cv2
import matplotlib.pyplot as plt
```
导入需要使用的库,OpenCV 和 Matplotlib。
```python
img = cv2.imread("D:\shujuji\guangliang\80Lux\\000031.jpg")
```
使用 OpenCV 的 `imread` 函数读取一张图像,文件路径为 "D:\shujuji\guangliang\80Lux\\000031.jpg"。
```python
blue = img[:, :, 0]
green = img[:, :, 1]
red = img[:, :, 2]
```
将图像分离成蓝色通道、绿色通道和红色通道。
```python
blue_equ = cv2.equalizeHist(blue)
green_equ = cv2.equalizeHist(green)
red_equ = cv2.equalizeHist(red)
```
对每个通道进行直方图均衡化。
```python
equ = cv2.merge([blue_equ, green_equ, red_equ])
```
将均衡化后的通道合并成一张图像。
```python
cv2.imshow("1",img)
cv2.imshow("2",equ)
```
使用 OpenCV 的 `imshow` 函数显示原始图像和均衡化后的图像。
```python
plt.figure("原始图像直方图")
plt.hist(img.ravel(), 256)
plt.figure("均衡化图像直方图")
plt.hist(equ.ravel(), 256)
plt.show()
```
使用 Matplotlib 的 `hist` 函数绘制原始图像和均衡化后的图像的直方图,并使用 `show` 函数显示直方图。
```python
cv2.waitKey()
cv2.destroyAllWindows()
```
等待用户按下任意键,然后关闭所有窗口。