在C++中,圖像濾波和增強可以通過多種方法實現(xiàn),其中一些常見的方法包括:
filter2D
的函數(shù),可以用于實現(xiàn)卷積濾波器。#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat src = imread("input.jpg");
Mat dst;
// 創(chuàng)建一個濾波器內(nèi)核
Mat kernel = (Mat_<float>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
// 應(yīng)用卷積濾波器
filter2D(src, dst, src.depth(), kernel);
imwrite("output.jpg", dst);
return 0;
}
GaussianBlur
的函數(shù),可以用于實現(xiàn)高斯濾波器。#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat src = imread("input.jpg");
Mat dst;
// 應(yīng)用高斯濾波器
GaussianBlur(src, dst, Size(5, 5), 1.5);
imwrite("output.jpg", dst);
return 0;
}
medianBlur
的函數(shù),可以用于實現(xiàn)中值濾波器。#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat src = imread("input.jpg");
Mat dst;
// 應(yīng)用中值濾波器
medianBlur(src, dst, 5);
imwrite("output.jpg", dst);
return 0;
}
bilateralFilter
的函數(shù),可以用于實現(xiàn)雙邊濾波器。#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat src = imread("input.jpg");
Mat dst;
// 應(yīng)用雙邊濾波器
bilateralFilter(src, dst, 9, 75, 75);
imwrite("output.jpg", dst);
return 0;
}
equalizeHist
的函數(shù),可以用于實現(xiàn)直方圖均衡化。#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat src = imread("input.jpg", IMREAD_GRAYSCALE);
Mat dst;
// 應(yīng)用直方圖均衡化
equalizeHist(src, dst);
imwrite("output.jpg", dst);
return 0;
}
這些方法只是圖像濾波和增強的一部分,還有其他更多的技術(shù)可以用于圖像處理,例如邊緣檢測、特征提取等。在實際應(yīng)用中,可以根據(jù)需要選擇合適的方法來實現(xiàn)圖像的濾波和增強。