使用OpenCV进行自定义线性滤波/Robert/Sobel/Laplace

源代码:

// testOpencv14.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;

const char* inWin = "input window";
const char* outWin = "output window";

Mat src, dst;

int main()
{
   // std::cout << "Hello World!\n";
    src = imread("E:/imageSources/3.jpg");
    if (!src.data) {
        printf("cannot load image,please check your code!");
        return -1;
    }

namedWindow(inWin, WINDOW_AUTOSIZE);
    namedWindow(outWin, WINDOW_AUTOSIZE);
    imshow(inWin,src);
    //===========================robert=====================================//
    robert算子 X轴方向
    //Mat kernal_robert_X=(Mat_<int>(2,2) << 1,0,0,-1);
    robert算子 Y轴方向
    //Mat kernal_robert_Y = (Mat_<int>(2, 2) << 0, 1, -1, 0);

//filter2D(src,dst,-1, kernal_robert_X,Point(-1,-1),0.0);
    //imshow(outWin,dst);
    //filter2D(src, dst, -1, kernal_robert_Y, Point(-1, -1), 0.0);
    //imshow("Robert_Y", dst);

//==========================sobel======================================//
    Sobel算子 X轴方向
    //Mat kernal_sobel_X=(Mat_<int>(3,3) << -1,0,1,-2,0,2,-1,0,1);
    Sobel算子 Y轴方向
    //Mat kernal_sobel_Y = (Mat_<int>(3, 3) << -1,-2,-1,0,0,0,1,2,1);

//filter2D(src,dst,-1, kernal_sobel_X,Point(-1,-1),0.0);
    //imshow(outWin,dst);
    //filter2D(src, dst, -1, kernal_sobel_Y, Point(-1, -1), 0.0);
    //imshow("Y", dst);

//=======================Laplace Operator===============================//
    Laplace算子
    //Mat kernal_laplace = (Mat_<int>(3, 3) << 0, -1, 0, -1, 4, -1, 0, -1, 0);

//filter2D(src, dst, -1, kernal_laplace, Point(-1, -1), 0.0);
    //imshow(outWin, dst);

//========================自定义模糊算子================================//
    int c = 0;
    int index = 0;
    int kernalSize = 0;
    while (true)
    {
        c = waitKey(500);
        if ((char)c == 27) //按下ESC键  
        {
            break;
        }

kernalSize = 0 + (index % 5)*2 + 1 ;//一定要保证Kernal的值为单数
        Mat kernalCustomalized = Mat::ones(Size(kernalSize, kernalSize), CV_32F) / (float)(kernalSize * kernalSize);
        filter2D(src,dst,-1,kernalCustomalized,Point(-1,-1),0.0);
        index++;
        imshow(outWin, dst);
    }

waitKey(0);
    return 0;
}

RobertX,Y算子处理结果:

Sobel算子X,Y处理结果:

Laplace算子处理结果:

自定义线性滤波处理效果(动态模糊处理):

(代码运行结果为动态模糊,即模糊程度逐渐加深,没有上传视频截取的图片)

2020.11.05 使用OpenCV进行自定义线性滤波 【OpenCV C++ Robert/Sobel/Laplace】相关推荐

  1. (十九:2020.11.05)MICCAI 2020 追踪之论文纲要(译)<中>

    论文目录 PART III <Computer Aided Intervention, Ultrasound and Image Registration 计算机辅助干预,超声和图像配准> ...

  2. 2020/11/05随记 基于jini的C++和Java交互

    书展翰墨,叹锦绣山河匆匆. 首选用Eclipse创建对应的java工程,编写.java和.class文件 native关键字的使用 凡是一种语言,都希望是纯.比如解决某一个方案都喜欢就单单这个语言来写 ...

  3. QIIME 2教程. 01简介和安装 Introduction Install(2020.11开始更新)

    写在前面 QIIME是微生物组领域最广泛使用的分析流程,10年来引用20000+次,2019年Nature杂志评为近70年来人体菌群研究的25个里程碑事件--里程碑16:生物信息学工具助力菌群测序数据 ...

  4. QIIME 2教程. 11元数据Metadata(2020.11)

    文章目录 QIIME 2用户文档. 11元数据 元数据格式要求 元数据验证 前导和尾随空格字符 注释和空行 标识符列 标识符的建议 元数据列 列类型 数字格式化 高级文件格式详细信息 TSV行话和语法 ...

  5. QIIME 2教程. 01简介和安装 Introduction Install(2020.11)

    文章目录 写在前面 QIIME 2的优势 QIIME 2用户文档(版本:2020.11) 视频:QIIME 2用户文档01.1 简介 入门指南 什么是QIIME 2? 核心概念 数据文件: QIIME ...

  6. 【不忘初心】Win10_20H2_2009_19042.610_X64_七合一_[纯净精简版][2.83G](2020.11.2)

    母版来自MSDN WIN10_20H2.19042.508,集成补到19042.610,20H2相比1909 2004版本要稳定很多,此版修复了上次的一些问题,应微软毒.粉的要求新增一版带Defend ...

  7. 2020.11.16-11.23 人工智能行业每周技术精华文章汇总

    月初的时候,大学好友盘下了一个门面,打算开一个儿童乐园. 不过并不是全职,后期他家里人会帮忙打理. 他也是喜欢折腾的人,这几年我们也一起合作做过很多的项目. 最近也一直在和我讨论,如何做新店的营销方案 ...

  8. 2020.11.02-11.09 人工智能行业每周技术精华文章汇总

    上周11月3号,国家发布了<十四五规划和2035年远景目标的建议>. 不管是从资本市场,还是在民间,都引起了广大的关注. 既然是政策性新闻,那就是国家希望你看的. 或者说,在未来的5年.1 ...

  9. 2020.11新闻文章回顾

    月初统一收租. 如果觉得每天的新闻&原创文章有点帮助,可以微微打赏,让德事君多一点坚持下去的动力! 2020.11新闻&文章 电子支付Joompay要做欧洲的支付宝 软件测试资质认证I ...

最新文章

  1. 初等数论--同余--MILLER-RABIN素性检测算法
  2. log4j按天生成且有按照文件大小分割_论文阅读TGM:轨迹生成
  3. mysql备份一个表到ftp_备份部分mysql表并上传至指定ftp服务器目录中
  4. What happens when clicking interaction record work center?
  5. 某些书籍翻译的太屎了,误导人!
  6. 监控工具之zabbix server3.4 部署配置
  7. 《架构之美》阅读笔记四
  8. ShadeGraph教程之节点详解7:Utility Nodes
  9. 《nftables相比iptables到底改变了什么》-- (作者:blog.csdn.net/dog250)
  10. [C++] Vector对象的合法定义
  11. 十六进制高低位转换,返回十进制数
  12. php微信公众号项目域名,微信公众号里“JS接口域名”实现分享功能
  13. 【语音处理】基于matlab GUI汉宁窗FIR陷波滤波器语音信号加噪去噪【含Matlab源码 1711期】
  14. 深入理解uwsgi和gunicorn网络模型
  15. 这些好用的抠图软件,助你实现一键抠图
  16. 网口压线顺序_水晶头压线顺序
  17. 1.3双摇杆遥控器电路部分--基本外设电路(ST-link下载、串口、按键、摇杆、电量检测、LED指示灯、0.96寸OLED、NRF24L01)
  18. HDOJ 1859 最小长方形
  19. 如何在win10安装libaio,并且使用CFLAGS和LDFLAGS环境变量指示其位置,并且如何设置DS_BUILD_AIO=0禁用async_io...
  20. android studio运行时报错AVD Nexus_5X_API_P is already running解决办法

热门文章

  1. Menu菜单,MenuBar菜单栏,MenuItem菜单项
  2. 安卓怎么显示一段html代码,【报Bug】点击安卓源生返回键 会导致页面崩溃直接显示HTML代码...
  3. 手机点餐系统概述_实训答辩安卓点餐系统ppt课件
  4. next_permutation函数与perv_permutation函数
  5. octave-移动数据
  6. Linux支持IDE硬盘,Linux中,IDE硬盘为啥表示成hda,不是iha?
  7. matlab耀输,基于 Matlab的BP神经网络在太阳耀斑级别预测中的应用
  8. 《三、企业级SVN运维实战:SVN服务配置https访问》
  9. 重装系统如何保留正版Win10和Office
  10. python filter和map的区别_js中filter和map的区别