对于单通道黑白图像(灰度图),你可以使用 OpenCV 内置函数来实现图像亮度增强。下面是一个示例代码,展示如何对单通道图像进行亮度增强。
示例代码
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
// 加载灰度图像
cv::Mat image = cv::imread("path_to_your_image.jpg", cv::IMREAD_GRAYSCALE);
if (image.empty()) {
std::cerr << "Could not open or find the image!" << std::endl;
return -1;
}
int brightnessValue = 50; // 要增加的亮度值
// 增加亮度,使用 Scalar 对于单通道的情况下只需要一个值
cv::Mat enhancedImage;
cv::Scalar scalarValue(brightnessValue); // 单通道增量
// 使用 add 函数增强亮度
cv::add(image, scalarValue, enhancedImage);
// 显示原始和增强后的图像
cv::imshow("Original Image", image);
cv::imshow("Enhanced Image", enhancedImage);
// 保存结果(可选)
cv::imwrite("enhanced_image.jpg", enhancedImage);
cv::waitKey(0); // 等待按键
return 0;
}
注意事项:
路径替换:请将
path_to_your_image.jpg
替换为你要处理的实际黑白图像路径。亮度值:
brightnessValue
控制增加的亮度程度,可以根据需要调整。确保选择合适的值,以免过高导致信息丢失。内置函数:这里使用了
cv::add()
函数,它会自动处理溢出情况,确保结果仍然在有效范围内(0-255)。显示与保存:此代码将同时显示原始和增强后的图像,并可以将结果保存为新文件。
通过这种方式,你可以简洁地对灰度图像进行亮度增强。
内容由零声教学AI助手提供,问题来源于学员提问