16 - 自定义卷积算子 和 经典算子
代码 和理解注释:
#include<opencv2/opencv.hpp>;
using namespace cv;
int main(int argc, char* argv) { // 16 - 自定义线性滤波
Mat source1;
source1 = imread("F:\\OpenCV-Test\\TestPicture\\SourcePicture1\\1.PNG");
if (!source1.data) { printf("could not load image .. \n"); return -1; }
imshow("原图source1", source1);
// 卷积核,经典算子,Robert算子,Sobel算子,掩膜操作,拉普拉斯算子
//Robert算子 ; XY方向梯度算子
Mat change1Robert,change2Robert;
Mat kernel_Robert_X = (Mat_<int>(2, 2) << 1, 0, 0, -1); //X方向差异轮廓
Mat kernel_Robert_Y = (Mat_<int>(2, 2) << 0, 1, -1, 0); //Y方向差异轮廓
filter2D(source1, change1Robert, source1.depth(), kernel_Robert_X, Point(-1, -1), 0.0);
filter2D(source1, change2Robert, source1.depth(), kernel_Robert_Y, Point(-1, -1), 0.0);
// imshow("Robert算子X方向", change1Robert);
// imshow("Robert算子Y方向", change2Robert);
// Sobel算子
Mat change1Sobe