opencv的Laplace算子

    xiaoxiao2021-03-25  210

    

    int main(){  Mat src = imread("test.jpg");//载入原始图     Mat src1, src2, src3, src4,dst;  namedWindow("效果图窗口", 1);//定义窗口  //使用高斯滤波消除噪声  GaussianBlur(src, src2, Size(3, 3), 0, 0, BORDER_DEFAULT);  imshow("效果图窗口", src2);  waitKey(3000);  //转换为灰度图   cvtColor(src2, src3, CV_RGB2GRAY);  imshow("效果图窗口", src3);  waitKey(3000);  //使用Laplace函数  Laplacian(src3, src4, CV_16S, 3, 1, 0, BORDER_DEFAULT);  imshow("效果图窗口", src4);  waitKey(3000);  //计算绝对值,并将结果转换成8位  convertScaleAbs(src4, dst);  imshow("效果图窗口", dst);  waitKey(3000);  return 0; }

    C++: void Laplacian(InputArray src,OutputArray dst, int ddepth, int ksize=1, double scale=1, double delta=0, intborderType=BORDER_DEFAULT );

    第一个参数,InputArray类型的image,输入图像,即源图像,填Mat类的对象即可,且需为单通道8位图像。

    第二个参数,OutputArray类型的edges,输出的边缘图,需要和源图片有一样的尺寸和通道数。第三个参数,int类型的ddept,目标图像的深度。第四个参数,int类型的ksize,用于计算二阶导数的滤波器的孔径尺寸,大小必须为正奇数,且有默认值1。第五个参数,double类型的scale,计算拉普拉斯值的时候可选的比例因子,有默认值1。第六个参数,double类型的delta,表示在结果存入目标图(第二个参数dst)之前可选的delta值,有默认值0。第七个参数, int类型的borderType,边界模式,默认值为BORDER_DEFAULT。这个参数可以在官方文档中borderInterpolate()处得到更详细的信息。

    转载请注明原文地址: https://ju.6miu.com/read-406.html

    最新回复(0)