opencv图像锐化并调整对比度和亮度c++代码
时间: 2024-07-09 17:00:42 浏览: 144
OpenCV实现图像对比度、亮度值调整(C++实现).zip
在OpenCV中,你可以使用高斯模糊来实现图像的平滑处理,然后通过高斯卷积来实现锐化效果。对于对比度和亮度的调整,可以使用`cv::addWeighted`函数。以下是一个简单的示例代码:
```cpp
#include <opencv2/opencv.hpp>
// 加载图片
cv::Mat src = cv::imread("input.jpg", cv::IMREAD_COLOR);
if (src.empty()) {
std::cout << "Could not open or find the image" << std::endl;
return;
}
// 高斯模糊(平滑处理)
cv::Mat blurred;
cv::GaussianBlur(src, blurred, cv::Size(5, 5), 0); // 可以调整参数如 kernel_size 和 sigma
// 使用卷积核进行锐化
cv::Mat kernel = (cv::Mat_<float>(3, 3) << 0, -1, 0,
-1, 5, -1,
0, -1, 0);
cv::Mat sharpened;
cv::filter2D(blurred, sharpened, -1, kernel); // 卷积操作
// 对比度和亮度调整
cv::Mat adjusted;
cv::cvtColor(sharpened, adjusted, cv::COLOR_BGR2GRAY); // 如果源图是彩色,需要先转换为灰度
cv::Mat alpha = (0.7); // 对比度调整系数
cv::Mat beta = 30; // 亮度调整值
cv::addWeighted(adjusted, alpha, sharpened, 1 - alpha, beta, adjusted);
// 显示原始图像和处理后的图像
cv::imshow("Original Image", src);
cv::imshow("Sharpened and Adjusted", adjusted);
cv::waitKey(0);
cv::destroyAllWindows();
```
阅读全文