利用pycharm开发环境和openCV、numpy、matplotlib等常用工具包;完成如下程序代码设计及实现: ①编程实现图像的灰度变换,使给定图像变暗、变量、降低对比度和对比度增强;
时间: 2024-11-24 12:44:03 浏览: 29
在PyCharm开发环境中,你可以利用OpenCV库进行图像处理,结合NumPy进行数值计算,以及Matplotlib进行结果展示。以下是实现图像灰度变换的一段基础代码示例:
首先,你需要安装必要的库,如果尚未安装,可以使用pip进行安装:
```bash
pip install opencv-python numpy matplotlib
```
然后,在Python文件中编写代码:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 加载图像
image = cv2.imread('your_image_path.jpg', cv2.IMREAD_GRAYSCALE) # 使用灰度模式读取
def adjust_brightness(image, factor):
return np.clip(image * factor, 0, 255).astype(np.uint8)
def adjust_contrast(image, factor):
mean = image.mean()
return (image - mean) * factor + mean
# 变暗(减小亮度)
darkened_image = adjust_brightness(image, 0.7)
# 提亮(增加亮度)
brightened_image = adjust_brightness(image, 1.3)
# 降低对比度
low_contrast_image = adjust_contrast(image, 0.8)
# 提高对比度
high_contrast_image = adjust_contrast(image, 1.2)
# 显示原图和调整后的图像
fig, axs = plt.subplots(nrows=2, ncols=2)
axs[0, 0].imshow(image, cmap='gray')
axs[0, 0].set_title('Original')
axs[0, 1].imshow(darkened_image, cmap='gray')
axs[0, 1].set_title('Darkened')
axs[1, 0].imshow(brightened_image, cmap='gray')
axs[1, 0].set_title('Brightened')
axs[1, 1].imshow(low_contrast_image, cmap='gray')
axs[1, 1].set_title('Low Contrast')
for ax in axs.flat:
ax.set(xticks=[], yticks=[])
plt.show()
# 保存图片
cv2.imwrite('darkened_image.jpg', darkened_image)
cv2.imwrite('brightened_image.jpg', brightened_image)
cv2.imwrite('low_contrast_image.jpg', low_contrast_image)
cv2.imwrite('high_contrast_image.jpg', high_contrast_image)
```
在这个例子中,我们分别对原始灰度图像进行了亮度调整(变暗和提亮)、对比度调整(降低和提高)。每种变换后都展示了图片并保存了结果。
阅读全文