定义掩膜:Mat kernel = (Mat_<char>(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0); filter2D( src, dst, src.depth(), kernel );其中src与dst是Mat类型变量、src.depth表示位图深度,有32、24、8等。
#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>
using namespace cv;
int main(void) {
Mat src, dst;
src = imread("C:/Users/Robin/Pictures/test.jpg");
if (!src.data) {
std::cout << "could load image..\n";
return -1;
}
namedWindow("input image", CV_WINDOW_AUTOSIZE);
imshow("input image", src);
Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);//完全
filter2D(src, dst, src.depth(), kernel);
namedWindow("contrast image demo", CV_WINDOW_AUTOSIZE);
imshow("contrast image demo", dst);
waitKey(0);
return 0;
}
本文介绍了如何使用OpenCV库中的filter2D函数,通过定义一个3x3的掩膜Matkernel实现图像的对比度增强。重点讲解了Mat类型变量的使用和不同位图深度处理。通过代码实例演示了从读取图片到应用滤波的过程。
930

被折叠的 条评论
为什么被折叠?



