要将处理后的图像保存到文件中,可以使用 OpenCV 的 imwrite
函数。在前面的示例代码中,您可以在显示结果之前添加 imwrite
函数来保存滤波后的图像。以下是修改后的代码:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
// 读取灰度图像
Mat img = imread("input_image.jpg", IMREAD_GRAYSCALE);
if (img.empty()) {
cout << "Error loading image!" << endl;
return -1;
}
// 均值滤波
Mat meanFiltered;
int kernelSize = 5; // 核大小
blur(img, meanFiltered, Size(kernelSize, kernelSize));
// 高斯滤波
Mat gaussianFiltered;
double sigmaX = 1.0; // X方向标准差
GaussianBlur(img, gaussianFiltered, Size(kernelSize, kernelSize), sigmaX);
// 中值滤波
Mat medianFiltered;
medianBlur(img, medianFiltered, kernelSize);
// 保存处理后的图像
imwrite("mean_filtered.jpg", meanFiltered);
imwrite("gaussian_filtered.jpg", gaussianFiltered);
imwrite("median_filtered.jpg", medianFiltered);
// 显示结果
imshow("Original Image", img);
imshow("Mean Filtered Image", meanFiltered);
imshow("Gaussian Filtered Image", gaussianFiltered);
imshow("Median Filtered Image", medianFiltered);
waitKey(0); // 等待按键关闭窗口
return 0;
}
在这段代码中:
imwrite
函数用于将每个滤波后的图像保存为指定名称的文件(如 “mean_filtered.jpg”、”gaussian_filtered.jpg” 和 “median_filtered.jpg”)。- 确保您有足够的权限在当前工作目录中创建文件,或者提供一个完整的路径来保存它们。
注意事项:
- 请根据需要调整文件名和格式。
- 如果使用其他格式(如 PNG),请确保后缀与您所需的格式匹配。
内容由零声教学AI助手提供,问题来源于学员提问