13 OpenCv自定义线性滤波

文章目录

  • 卷积
  • 算子
  • 示例

卷积

  • 卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作。
  • Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)

把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。数学表达如下
在这里插入图片描述
在这里插入图片描述
Sum = 8x1+6x1+6x1+2x1+8x1+6x1+2x1+2x1+8x1
New pixel = sum / (m*n)

算子

Robert算子

在这里插入图片描述

Robert X 方向
Mat kernel_x = (Mat_<int>(3, 3) << 1, 0, 0, -1);
filter2D(src, dst, -1, kernel_x, Point(-1, -1), 0.0);

Sobel算子

在这里插入图片描述

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);

拉普拉斯算子

在这里插入图片描述

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);

示例

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;Mat src, gray_src, dst;const char* output_title = "binary image";
int main()
{src = imread("test.jpg");//读取图片if (src.empty()){cout << "could not load img...";return -1;}namedWindow(output_title);//设置窗口名称imshow(output_title, src);int ksize = 0;int c = 0;int index = 0;while (true) {c = waitKey(500);if ((char)c == 27) {// ESC break;}ksize = 5 + (index % 8) * 2;Mat kernel = Mat::ones(Size(ksize, ksize), CV_32F) / (float)(ksize * ksize);filter2D(src, dst, -1, kernel, Point(-1, -1));index++;imshow(output_title, dst);}waitKey(0);return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/730404.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

灵魂指针,教给(二)

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看&#xff0c;已成习惯 创作不易&#xff0c;多多支持&#xff01; 目录 一、数组名的理解 二、使用指针访问数组 三、一维数组传参本质 四、冒泡排序 五、二级指针 六、指针数组 七、指针数组…

黑马点评-好友关注实现

关注和取关 针对用户的操作&#xff0c;可以对用户进行关注和取消关注功能&#xff1a; 需要实现两个接口&#xff1a; 关注和取关接口 判断是否关注的接口 接口&#xff1a; //关注和取关 PutMapping("/{id}/{isFollow}") public Result follow(PathVariable(&…

Jmeter查看结果树之查看响应的13种详解方法

Jmeter查看结果树查看响应有哪几种方法&#xff0c;可通过左侧面板底部的下拉框选择: 01 Text 查看结果树中请求的默认格式为Text&#xff0c;显示取样器结果、请求、响应数据3个部分内容。 取样器结果&#xff1a; 默认Raw展示&#xff0c;可以切换为Parsed视图&#xff0c…

Lwip之TCP客户端示例记录

前言 使用两个线程作为客户端中的收和发使用线程挂起和线程恢复的api来实现接收线程必须要保证在处理连接状态才能进行接收。 Demo // // Created by shchl on 2024/3/8. // #include <string.h> #include "lwip/api.h" #include "FreeRTOS.h" #i…

vue3运行npm create vue@latest卡住不动

问题&#xff1a;执行npm create vuelatest卡住一动不动 解决办法&#xff1a;更换npm镜像 旧的镜像可能都是这个 https://registry.npm.taobao.org/执行下面的指令&#xff1a;更换成这个 npm config set registryhttps://registry.npmmirror.com

5 一个能直接运行的Ninja例子,build.ninja文件怎么写?

一个能直接运行的Ninja例子&#xff0c;build.ninja文件怎么写&#xff1f; 作者将狼才鲸创建日期2024-03-08 CSDN文章阅读地址Gitee源码和工程下载地址 如果你使用的是Windows MSYS2 MinGW64 已提前安装过gccmsys2命令行中使用 pacman -S mingw-w64-x86_64-ninja 安装Ninj…

Python爬虫——scrapy-4

免责声明 本文章仅用于学习交流&#xff0c;无任何商业用途 部分图片来自尚硅谷 meta简介 在Scrapy框架中&#xff0c;可以使用meta属性来传递额外的信息。meta属性可以在不同的组件之间传递数据&#xff0c;包括爬虫、中间件和管道等。 在爬虫中&#xff0c;可以使用meta属…

7-4 哲哲打游戏(Python)

哲哲是一位硬核游戏玩家。最近一款名叫《达诺达诺》的新游戏刚刚上市&#xff0c;哲哲自然要快速攻略游戏&#xff0c;守护硬核游戏玩家的一切&#xff01; 为简化模型&#xff0c;我们不妨假设游戏有 N 个剧情点&#xff0c;通过游戏里不同的操作或选择可以从某个剧情点去往另…

二叉树算法题

树的初始化 类包含左右节点属性以及val值。 class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val x;} } 二叉树的中序遍历。 public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res new ArrayList<Integer>…

SQL 的优化手段

目录 1. 索引优化 2. 查询优化 3. SQL语句书写习惯 4. 数据库结构优化 5. 缓存策略 6. 批量操作 7. 服务器硬件和配置 8. 使用执行计划分析 9. 避免锁竞争 10. 其他优化手段 1. 索引优化 使用索引 创建合适的索引可以显著提高查询速度。为经常需要搜索的列、作为查询…

rabbitmq4

独占队列&#xff1a;我们的队列只能被当前通道所绑定&#xff0c;不能被其他的连接所绑定&#xff0c;如果有其他的通道或连接再使用此队列的话&#xff0c;会直接报错&#xff0c;一般设置为false&#xff1a; autoDelete&#xff1a;消费者在消费完队列&#xff0c;并且彻底…

20 卷积层里的填充和步幅【李沐动手学深度学习v2课程笔记】

1. 填充和步幅 在上下左右分别填充一些0 2. 代码实现 2.1 填充 我们创建一个高度和宽度为3的二维卷积层&#xff0c;并在所有侧边填充1个像素。给定高度和宽度为8的输入&#xff0c;则输出的高度和宽度也是8。 import torch from torch import nn# 为了方便起见&#xff0c;…

第三百八十九回

文章目录 1. 概念介绍2. 使用方法2.1 获取所有时区2.2 转换时区时间 3. 示例代码4. 内容总结 我们在上一章回中介绍了"分享一些好的Flutter站点"相关的内容&#xff0c;本章回中将介绍timezone包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在…

LeetCode 2482.行和列中一和零的差值

给你一个下标从 0 开始的 m x n 二进制矩阵 grid 。 我们按照如下过程&#xff0c;定义一个下标从 0 开始的 m x n 差值矩阵 diff &#xff1a; 令第 i 行一的数目为 onesRowi 。 令第 j 列一的数目为 onesColj 。 令第 i 行零的数目为 zerosRowi 。 令第 j 列零的数目为 zer…

el-form-item内的el-select如何自适应宽度

最近在使用element-ui做后台管理的时候&#xff0c;有个需求是在弹窗组件里面&#xff0c;添加一个el-select下拉框选项&#xff0c;但是给el-select设置的宽度无法自适应&#xff0c;原因很简单&#xff0c;我们不需要设置固定宽度&#xff0c;设置百分比就行了&#xff0c;让…

AI中大模型的文件格式有哪些?

环境&#xff1a; 大模型 问题描述&#xff1a; AI中大模型的文件格式有哪些&#xff1f; 解决方案&#xff1a; 大型机器学习模型&#xff0c;例如在自然语言处理、图像识别或其他领域的模型&#xff0c;可能会被保存和分发在多种不同的文件格式中。以下是一些常见的格式…

js 中的一些知识

1.js 往本地内存中写数据 localStorage.setItem(key, value); // 使用localStorage存储数据 sessionStorage.setItem(key, value);// 使用sessionStorage存储数据 let value localStorage.getItem(key); // 读取localStorage数据 let value sessionStorage.getItem(key);…

【框架设计】MVC、MVP、MVVM对比图

1. MVC&#xff08;Model-View-Controller&#xff09; 2. MVP&#xff08;Model-View-Presenter&#xff09; 3. MVVM&#xff08;Model-View-ViewModel&#xff09;

Golang基于Redis bitmap实现布隆过滤器(完结版)

Golang基于Redis bitmap实现布隆过滤器&#xff08;完结版&#xff09; 为了防止黑客恶意刷接口&#xff08;请求压根不存在的数据&#xff09;&#xff0c;目前通常有以下几种做法&#xff1a; 限制IP&#xff08;限流&#xff09;Redis缓存不存在的key布隆过滤器挡在Redis前 …

golang 协程 (goroutine) 与通道 (channel)

golang的协程和通道&#xff0c;之前就看过了&#xff0c;一直没有很好的理解&#xff0c;所以一直也没记录&#xff0c;今天看书&#xff0c;看到有一个总结的章节&#xff0c;里面记录了一些注意事项&#xff0c;因此写个文档&#xff0c;记录一下&#xff0c;避免以后自己忘…