【Emgu CV教程】7.1、图像锐化之Laplacian(拉普拉斯)算子锐化

文章目录

  • 一、介绍
  • 二、举例
    • 1.原始素材
    • 2.代码
    • 3.运行结果


一、介绍

前面几篇讲的是图像平滑,就是抑制或消除噪声,并使得图像亮度及颜色变化更平缓的操作。在图像处理领域,与平滑操作相对应的,叫图像锐化
图像锐化就是增强图像的边缘和细节部分,使图像变得清晰。它分为空间域处理和频域处理两类,空间领域相对简单,也是利用滤波核生成新的图像。频率域滤波会涉及到傅里叶函数应用,相对来说更难以理解。
下面将连续介绍几种图像锐化的常见方法,这篇文章先讲Laplacian(拉普拉斯)算子锐化,这是一个最基础、最常用的方法。它其实就是利用了前面介绍的Filter2D()函数进行卷积,但是卷积核是有特殊要求的。具体的含义我也不清楚,读者可以看看网上的相关说明,这里举一个简单的例子,以3 * 3大小的滤波核为例,常见的拉普拉斯算子是这样的:
在这里插入图片描述

二、举例

1.原始素材

原始素材定义为srcMat,如下:
在这里插入图片描述
这是个电影里的镜头,下面看一下锐化效果。

2.代码

Laplacian(拉普拉斯)算子锐化的代码如下:

int ksize = 11;
int[,,] date = new[,,]
{{{ -1 },{ -1 },{ -1 }},{{ -1 },{ ksize },{ -1 }},{{ -1 },{ -1 },{ -1 }}
};
Mat tempMat = srcMat.Clone();
Mat dstMat = new Mat(tempMat.Size, tempMat.Depth, tempMat.NumberOfChannels);
Image<Gray, int> kernel = new Image<Gray, int>(date);
CvInvoke.Filter2D(tempMat, dstMat, kernel, new System.Drawing.Point(-1, -1));

3.运行结果

在这里插入图片描述

锐化效果非常棒,是不是有一种从黑夜到白天的效果。

注意:Emgu CV里面有个Laplacian()函数,这个可不是锐化用的,而是检测边缘用的,概念要分清除。


原创不易,请勿抄袭。共同进步,相互学习。

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

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

相关文章

python OpenCV:seamlessClone泊松融合

一、seamlessClone函数的用法 翻译 https://www.learnopencv.com/seamless-cloning-using-opencv-python-cpp/ def seamlessClone(src, dst, mask, p, flags, blendNone): # real signature unknown; restored from __doc__"""seamlessClone(src, dst, mask, …

【Hudi】Upsert原理

17张图带你彻底理解Hudi Upsert原理 1.开始提交&#xff1a;判断上次任务是否失败&#xff0c;如果失败会触发回滚操作。然后会根据当前时间生成一个事务开始的请求标识元数据。2.构造HoodieRecord Rdd对象&#xff1a;Hudi 会根据元数据信息构造HoodieRecord Rdd 对象&#xf…

2024年【起重机司机(限桥式起重机)】试题及解析及起重机司机(限桥式起重机)证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 起重机司机(限桥式起重机)试题及解析考前必练&#xff01;安全生产模拟考试一点通每个月更新起重机司机(限桥式起重机)证考试题目及答案&#xff01;多做几遍&#xff0c;其实通过起重机司机(限桥式起重机)理论考试很…

Django里写一个get请求

在Django中处理GET请求也是很直接的。默认情况下&#xff0c;Django的视图&#xff08;view&#xff09;会处理GET请求。要创建一个简单的GET请求处理器&#xff0c;你可以按照以下步骤&#xff1a; 首先&#xff0c;确保你已经创建了一个Django项目。 在你的应用中创建一个视…

linux ext3/ext4文件系统(part2 jbd2)

概述 jbd2&#xff08;journal block device 2&#xff09;是为块存储设计的 wal 机制&#xff0c;它为要写设备的buffer绑定了一个journal_head&#xff0c;这个journal_head与一个transaction绑定&#xff0c;随着事务状态的转移&#xff08;运行&#xff0c;生成日志&#…

我为什么不喜欢关电脑?

程序员为什么不喜欢关电脑&#xff1f; 你是否注意到&#xff0c;程序员们似乎从不关电脑&#xff1f;别以为他们是电脑上瘾&#xff0c;实则是有他们自己的原因&#xff01;让我们一起揭秘背后的原因&#xff0c;看看程序员们真正的“英雄”本色&#xff01; 一、上大学时。 …

Backtrader 量化回测实践(1)—— 架构理解和MACD/KDJ混合指标

Backtrader 量化回测实践&#xff08;1&#xff09;—— 架构理解和MACD/KDJ混合指标 按Backtrader的架构组织&#xff0c;整理了一个代码&#xff0c;包括了Backtrader所有的功能点&#xff0c;原来总是使用SMA最简单的指标&#xff0c;现在稍微增加了复杂性&#xff0c;用MA…

k8s除了可以直接运行docker镜像之外,还可以运行什么? springboot项目打包成的压缩包可以直接运行在docker容器中吗?

Kubernetes&#xff08;k8s&#xff09;主要设计用于自动部署、扩展和管理容器化应用程序。虽然它与Docker容器最为密切相关&#xff0c;Kubernetes实际上是与容器运行时技术无关的&#xff0c;这意味着它不仅仅能够管理Docker容器。Kubernetes支持多种容器运行时&#xff0c;包…

[office] EXCEL表格不能使用键盘箭头切换单元格该怎么解决- #媒体#经验分享#知识分享

EXCEL表格不能使用键盘箭头切换单元格该怎么解决? EXCEL表格不能使用键盘箭头切换单元格该怎么解决&#xff1f; 1、入下图所示的键盘。 图中红色标记“1”的地方是Scroll Lock指示灯。Scroll Lock就是“滚动锁定”的意思。当该指示灯亮起来的时候&#xff0c;在excel表格中操…

Android 面试问题 2024 版(其一)

Android 面试问题 2024 版&#xff08;其一&#xff09; 一、Java 和 Kotlin二、安卓组件三、用户界面 (UI) 开发四、安卓应用架构五、网络和数据持久性 一、Java 和 Kotlin Java 中的抽象类和接口有什么区别&#xff1f; 答&#xff1a;抽象类是不能实例化的类&#xff0c;它…

Tomcat反向代理集群配置与应用深入讲解

Tomcat反向代理集群配置与应用深入讲解 一、概述 本文将详细介绍如何使用Tomcat实现反向代理集群的配置和应用。通过本文的学习&#xff0c;你将掌握如何搭建一个高性能、高可用的Web应用集群&#xff0c;并了解Tomcat反向代理集群的原理和配置方法。 二、反向代理集群原理 …

CSS的全局值 initial inherit revert overlay unset

在CSS中&#xff0c;全局值是一组特殊的值&#xff0c;可以应用于大多数的CSS属性&#xff0c;用于改变这些属性的默认值、继承行为或重置为浏览器的默认样式。不过&#xff0c;需要注意的是&#xff0c;overlay 并不是一个标准的或广泛支持的全局值。以下是关于 initial、inhe…

使用IntelliJ IDEA查看接口的全部实现方法

在大型Java项目中&#xff0c;经常会使用接口和抽象类进行代码设计。为了更好地了解代码结构和功能&#xff0c;我们需要快速查看一个接口的所有实现类。IntelliJ IDEA提供了一些方便的方法来实现这一目标。 1. 点击查看接口的实现子类 在IDEA中&#xff0c;你可以轻松地查看…

一些用 GPT 翻译的计算机科学/人工智能 PDF 讲义

3D成像.pdf3D成像技术.pdf3D点云分析.pdfAAAI 2019 笔记.pdfCMU 10.708 概率图模型讲义.pdfCMU 15-312 编程语言基础讲义.pdfCMU 15-411 编译器设计讲义.pdfCMU 15-819 同伦类型论讲义.pdfCMU 15-819O 程序分析讲义.pdfCUNY CSci335 软件设计与分析 3 讲义.pdfDixie IT4500 信息…

大话设计模式——2.简单工厂模式(Simple Factory Pattern)

定义&#xff1a;又称静态工厂方法&#xff0c;可以根据参数的不同返回不同类的实例&#xff0c;专门定义一个类&#xff08;工厂类&#xff09;来负责创建其他类的实例可通过类名直接调用&#xff0c;被创建的实例通常具有共同的父类。 UML图&#xff1a; 例子&#xff1a; 计…

计算机视觉的应用24-ResNet网络与DenseNet网络的对比学习,我们该如何选择。

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用24-ResNet网络与DenseNet网络的对比学习&#xff0c;我们该如何选择。在计算机视觉领域&#xff0c;ResNet&#xff08;残差网络&#xff09;和DenseNet&#xff08;密集网络&#xff09;都是深度学…

Java设计模式——责任链模式

当一个请求需要在多个对象之间传递&#xff0c;每个对象都可能处理该请求或将其传递给下一个对象。在这种情况下&#xff0c;需要避免将发送者与接收者之间的耦合&#xff0c;以及确定请求的处理方式。此时可使用责任链模式&#xff0c;它的优点有降低耦合度&#xff08;无需关…

vue3父子组件传值

vue3父子组件传值 父组件 <template><div><h2>父组件</h2>我的存款: {{ money }}<child :moneymoney money"payMoney"></child></div> </template><script setup langts>import {ref} from "vue"…

华清远见作业第三十九天——Qt(第一天)

思维导图&#xff1a; 登录界面&#xff1a; 代码&#xff1a; #include "mainwindow.h" #include<QToolBar> #include<QPushButton> MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {this->resize(600,400);this->setFixedSize…

Mysql 8.0新特性详解

建议使用8.0.17及之后的版本&#xff0c;更新的内容比较多。 1、新增降序索引 MySQL在语法上很早就已经支持降序索引&#xff0c;但实际上创建的仍然是升序索引&#xff0c;如下MySQL 5.7 所示&#xff0c;c2字段降序&#xff0c;但是从show create table看c2仍然是升序。8.0…