vs灰度图像对比度增强
时间: 2023-06-28 13:04:27 浏览: 165
Python 图像对比度增强的几种方法(小结)
在 Visual Studio 中对灰度图像进行对比度增强可以通过以下步骤实现:
1. 打开 Visual Studio,创建一个新的 C++ 项目。
2. 在项目中添加一张灰度图像。
3. 引入 OpenCV 库,包含头文件 #include <opencv2/opencv.hpp>。
4. 读取灰度图像,使用 cv::imread() 函数读取图像,并将其转换为灰度图像。
```
cv::Mat gray_img = cv::imread("input_gray_img.jpg", cv::IMREAD_GRAYSCALE);
```
5. 对灰度图像进行对比度增强,通过调整图像的像素值来实现。可以使用以下公式:
```
output_pixel_value = (input_pixel_value - min_value) * (255 / (max_value - min_value))
```
其中,min_value 和 max_value 分别为图像中最小和最大像素值。
```
double min_val, max_val;
cv::minMaxLoc(gray_img, &min_val, &max_val);
cv::Mat enhanced_img = cv::Mat::zeros(gray_img.size(), gray_img.type());
for(int i = 0; i < gray_img.rows; i++){
for(int j = 0; j < gray_img.cols; j++){
enhanced_img.at<uchar>(i,j) = (gray_img.at<uchar>(i,j) - min_val) * (255 / (max_val - min_val));
}
}
```
6. 显示增强后的图像,使用 cv::imshow() 函数显示图像。
```
cv::namedWindow("Enhanced Image", cv::WINDOW_NORMAL);
cv::imshow("Enhanced Image", enhanced_img);
cv::waitKey(0);
```
完整代码如下:
```
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
{
cv::Mat gray_img = cv::imread("input_gray_img.jpg", cv::IMREAD_GRAYSCALE);
double min_val, max_val;
cv::minMaxLoc(gray_img, &min_val, &max_val);
cv::Mat enhanced_img = cv::Mat::zeros(gray_img.size(), gray_img.type());
for(int i = 0; i < gray_img.rows; i++){
for(int j = 0; j < gray_img.cols; j++){
enhanced_img.at<uchar>(i,j) = (gray_img.at<uchar>(i,j) - min_val) * (255 / (max_val - min_val));
}
}
cv::namedWindow("Enhanced Image", cv::WINDOW_NORMAL);
cv::imshow("Enhanced Image", enhanced_img);
cv::waitKey(0);
return 0;
}
```
阅读全文