用OpenCV提高lena.jpg图像的对比度的代码
时间: 2024-02-07 21:02:39 浏览: 32
可以使用OpenCV的equalizeHist函数来提高lena.jpg图像的对比度。以下是示例代码:
```python
import cv2
img = cv2.imread('lena.jpg', 0)
equ = cv2.equalizeHist(img)
cv2.imshow('Original Image', img)
cv2.imshow('Equalized Image', equ)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们首先使用cv2.imread函数读取lena.jpg图像并将其转换为灰度图像。然后,我们使用equalizeHist函数来提高图像的对比度,并将结果存储在变量equ中。最后,我们使用cv2.imshow函数显示原始图像和增强后的图像,并使用cv2.waitKey和cv2.destroyAllWindows函数等待用户操作和关闭窗口。
相关问题
visual studio 实现灰度图像对比度增强的程序
下面是一个简单的实现灰度图像对比度增强的示例程序:
```c++
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat gray_img = imread("lena.jpg", IMREAD_GRAYSCALE);
if (gray_img.empty())
{
cout << "Failed to load image!" << endl;
return -1;
}
int alpha = 1.5; // 对比度增益
int beta = 0; // 亮度偏移
Mat contrast_img;
gray_img.convertTo(contrast_img, -1, alpha, beta); // 对比度增强
namedWindow("Gray Image", WINDOW_NORMAL);
namedWindow("Contrast Image", WINDOW_NORMAL);
imshow("Gray Image", gray_img);
imshow("Contrast Image", contrast_img);
waitKey(0);
return 0;
}
```
在上面的代码中,我们使用了 OpenCV 库来读取灰度图像。然后,我们定义了一个 alpha 和 beta 变量,它们分别代表对比度增益和亮度偏移。接着,我们使用 `convertTo()` 函数来进行对比度增强。
最后,我们使用 `namedWindow()` 函数创建了两个窗口来显示原始图像和对比度增强后的图像,并使用 `imshow()` 函数来显示图像。最后,我们使用 `waitKey()` 函数等待用户按下任意键,然后关闭窗口并退出程序。
需要注意的是,这只是一个简单的示例程序,实际应用中可能需要更复杂的算法来实现更好的对比度增强效果。
python opencv灰度图的图像增强
图像增强是指将图像的质量进行改善,使其更加清晰、细节更加丰富。在OpenCV中,可以通过对图像进行灰度化、直方图均衡化、滤波等操作来实现图像增强。
1. 灰度化
将彩色图像转换为灰度图像是图像增强的第一步。在OpenCV中,可以使用cv2.cvtColor()函数将彩色图像转换为灰度图像。代码如下:
```
import cv2
img = cv2.imread('lena.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Image', gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
2. 直方图均衡化
直方图均衡化是一种用于增强图像对比度的技术。它通过将像素的灰度级进行重新分配,使得图像中灰度级分布更加均匀,从而提高图像的对比度。在OpenCV中,可以使用cv2.equalizeHist()函数对图像进行直方图均衡化。代码如下:
```
import cv2
img = cv2.imread('lena.jpg', 0)
equ = cv2.equalizeHist(img)
res = np.hstack((img, equ)) # stacking images side-by-side
cv2.imshow('Original Image vs. Equalized Image', res)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
3. 滤波
滤波是通过对图像进行卷积操作来实现的,可以去除噪声、平滑图像、边缘检测等。在OpenCV中,可以使用cv2.filter2D()函数对图像进行滤波。代码如下:
```
import cv2
import numpy as np
img = cv2.imread('lena.jpg')
kernel = np.ones((5,5), np.float32) / 25
dst = cv2.filter2D(img, -1, kernel)
cv2.imshow('Original Image', img)
cv2.imshow('Filtered Image', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注意:这里使用的是2D卷积滤波,对于灰度图像,通常使用一维卷积滤波更加简单高效。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)