opencv::自定义线性滤波
卷积概念
常见算子
自定义卷积模糊
卷积概念
	  1、卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作。
	  2、Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)。

3、把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。
  
常见算子



自定义卷积模糊 filter2D(
Mat src, // 输入图像
Mat dst, // 模糊图像
int depth, // 图像深度32/8
Mat kernel, // 卷积核/模板
Point anchor, // 锚点位置
double delta // 计算出来的像素+delta
)
int main(int argc, char** argv) {
    Mat src, dst;
    int ksize = ;
    src = imread(STRPAHT2);
    if (!src.data) {
        printf("could not load image...\n");
        return -;
    }
    // Sobel X 方向
    // Mat kernel_x = (Mat_<int>(3, 3) << -1, 0, 1, -2,0,2, -1, 0, 1);
    // filter2D(src, dst, -1, kernel_x, Point(-1, -1), 0.0);
    //imshow("Sobel X", dst);
    // Sobel Y 方向
    //Mat kernel_y = (Mat_<int>(3, 3) << -1, -2, -1, 0,0,0, 1,2,1);
    //filter2D(src, dst, -1, kernel_y, Point(-1, -1), 0.0);
    //imshow("Sobel X", dst);
    // 拉普拉斯算子
    // Mat kernel_y = (Mat_<int>(3, 3) << 0, -1, 0, -1, 4, -1, 0, -1, 0);
    // filter2D(src, dst, -1, kernel_y, Point(-1, -1), 0.0);
    //imshow("Sobel K_Y", dst);
    int c = ;
    int index = ;
    while (true) {
        c = waitKey();
        if ((char)c == ) {// ESC
            break;
        }
        ksize =  + (index % ) * ;
        Mat kernel = Mat::ones(Size(ksize, ksize), CV_32F) / (float)(ksize * ksize);
        filter2D(src, dst, -, kernel, Point(-, -));
        index++;
        imshow("OUTPUT_WIN", dst);
    }
    waitKey();
    return ;
}
opencv::自定义线性滤波的更多相关文章
- Opencv的线性滤波和非线性滤波
		线性滤波 :方框滤波 均值滤波 高斯滤波 非线性滤波: 中值滤波 双边滤波 这几个滤波都是起模糊作用 去除噪点 不废话了 下面是代码 #include <opencv2/opencv.h ... 
- Ubuntu 16.04 + OpenCV 自定义环境变量 pkg-config / PKG_CONFIG_PATH
		0. 前言 今天在执行一段脚本的时候,爆出错误: Package opencv was not found in the pkg-config search path. Perhaps you sho ... 
- OpenCV 自定义任意区域形状及计算平均值 方差
		opencv中有矩形的Rect函数.圆形的circl函数等,那么任意形状怎么取呢?方法1:点乘,将其形状与图像进行点乘,求其形状对应的图像形状:方法2:用findContours函数得对应的形状区域, ... 
- opencv::自定义角点检测
		#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespac ... 
- 数字图像处理作业使用OpenCV - 自定义直方图
		第二次作业需要打印出来灰度直方图,当然不能使用ocv的自带calcHist函数来得到Mat对象了……结果上网搜索怎么用自己的数据创建直方图,搜到的都是直接用函数的_(:з」∠)_ 结果这个地方拖了好久 ... 
- OpenCV:Mat元素访问方法、演出、代码的复杂性和安全性分析
		欢迎转载.尊重原创,因此,请注明出处: http://blog.csdn.net/bendanban/article/details/30527785 本文讲述了OpenCV中几种訪问矩阵元素的方法, ... 
- 使用opencv实现自定义卷积
		对图像进行卷积是图像处理的基本操作,最近在研究图像滤波,经常要用到自定义卷积,所以实现了一下 #include "opencv2/imgproc/imgproc.hpp" #inc ... 
- OpenCV——Harris、Shi Tomas、自定义、亚像素角点检测
		#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ... 
- opencv 4 图像处理 (1 线性滤波,非线性滤波)
		1 线性滤波:方框滤波.均值滤波.高斯滤波 1.1方框滤波(box Filter) 1.2均值滤波(blur函数) 缺陷: 1.3高斯滤波(GaussianBlur函数) 1.4线性滤波核心API函数 ... 
随机推荐
- SSO-CAS实现单点登录服务端
			目录 CAS-SSO 一.单点登录-CAS 二.下载搭建CAS 1. 下载 CAS 5.3 2. 导入IDEA 3. 打包war 3. war包部署到Tomcat 4. 启动Tomcat,访问 htt ... 
- 即时聊天APP(二) - MainActivity
			主活动包含三个Fragment,分别是会话.联系人和设置,初始布局隐藏所有碎片,然后把应该显示的显示出来: //隐藏所有Fragment private void hideAll(){ Fragmen ... 
- PyCharm2019激活
			PyCharm下载地址:https://www.jetbrains.com/pycharm/download/ 永久激活 这里主要介绍永久激活的方式,永久激活后,就可以放心使用了,一劳永逸,5分钟就能 ... 
- Kubernetes学习之Kubernetes架构
			架构 Kubernetes历史 
- [Leetcode] 第334题 递增的三元子序列
			一.题目描述 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1, ... 
- Mysql学习笔记整理之索引
			索引的概念: 索引是一个分散存储的数据结构(检索)对数据库表中一列或多列的值进行排序 为什么要用索引? 索引能极大的减少存储引擎需要扫描的数据量 索引可以把随机IO变成顺序IO 索引可以帮助我们进行分 ... 
- (七十四)c#Winform自定义控件-金字塔图表
			前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ... 
- tomcat下c3p0连接池配置问题
			一.首先如果要使用这个连接池,就需要导入c3p0-0.9.2-pre1.jar架包和支持架包mchange-commons-0.2.jar, 我这里测试使用的是msql数据库 当然也需要导入mysql ... 
- Java入门系列之hashCode和equals(十二)
			前言 前面两节内容我们详细讲解了Hashtable算法和源码分析,针对散列函数始终逃脱不掉hashCode的计算,本节我们将详细分析hashCode和equals,同时您将会看到本节内容是从<E ... 
- 报表统计——java实现查询某年12个月数据,没数据补0
			一般图表绘制例如echarts等,返回数据格式都大同小异.重点是利用sql或者java实现数据格式的转型,接下来是关键部分: 1.mapper层sql语句,返回统计好的月份与对应月份的数据. < ... 
