编写Python程序,利用cv2,在创建参数条同时具有参数输入框
时间: 2024-05-11 21:19:53 浏览: 56
以下是一个简单的示例程序,可以创建一个具有参数条和参数输入框的窗口,以控制图像的亮度和对比度:
```python
import cv2
import numpy as np
def update_brightness(val):
global brightness
brightness = val / 100.0
update_image()
def update_contrast(val):
global contrast
contrast = val / 100.0
update_image()
def update_image():
img = cv2.imread('image.jpg')
img = cv2.convertScaleAbs(img, alpha=(contrast), beta=(brightness*255))
cv2.imshow('image', img)
brightness = 1.0
contrast = 1.0
cv2.namedWindow('image')
cv2.createTrackbar('Brightness', 'image', int(brightness*100), 200, update_brightness)
cv2.createTrackbar('Contrast', 'image', int(contrast*100), 200, update_contrast)
update_image()
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个程序中,我们定义了两个回调函数 `update_brightness` 和 `update_contrast`,用于响应亮度和对比度参数条的变化。在每个回调函数中,我们更新全局变量 `brightness` 和 `contrast`,并调用另一个函数 `update_image` 来更新图像。在 `update_image` 函数中,我们读取图像,利用 `cv2.convertScaleAbs` 函数来改变亮度和对比度,并显示结果。最后,我们使用 `cv2.namedWindow` 和 `cv2.createTrackbar` 函数来创建窗口和参数条,并调用 `update_image` 函数来初始化图像。
阅读全文