laplacian算子

news/2025/1/8 18:07:47/文章来源:https://www.cnblogs.com/aisuanfa/p/18660304

拉普拉斯算子(Laplacian Operator)是图像处理中的一种二阶导数算子,用于检测图像中的边缘。它可以增强图像中灰度变化较大的区域,从而突出边缘特征。

数学定义

拉普拉斯算子在二维情况下定义为:

[
\Delta f(x, y) = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2}
]

在图像处理中,拉普拉斯算子通常用卷积核表示。常用的拉普拉斯算子核有:

Laplacian Kernel 1:
[ 0  -1   0 ]
[-1   4  -1 ]
[ 0  -1   0 ]Laplacian Kernel 2:
[ -1  -1  -1 ]
[ -1   8  -1 ]
[ -1  -1  -1 ]

OpenCV 中的用法

在 OpenCV 中,可以使用 cv::Laplacian 函数来计算图像的拉普拉斯算子。

示例代码

以下是一个使用 OpenCV 计算拉普拉斯算子的简单示例:

#include <opencv2/opencv.hpp>int main() {// 读取图像cv::Mat image = cv::imread("path_to_image.jpg", cv::IMREAD_GRAYSCALE);if (image.empty()) {std::cerr << "Could not open or find the image!" << std::endl;return -1;}// 计算拉普拉斯算子cv::Mat laplacian;cv::Laplacian(image, laplacian, CV_16S, 3); // 16位深度,3x3 卷积核// 转换为可显示的格式cv::Mat absLaplacian;cv::convertScaleAbs(laplacian, absLaplacian);// 显示原图和拉普拉斯图cv::imshow("Original Image", image);cv::imshow("Laplacian Image", absLaplacian);// 等待按键cv::waitKey(0);return 0;
}

编译和运行

确保你已安装 OpenCV,并使用以下命令编译:

g++ -o laplacian_example laplacian_example.cpp `pkg-config --cflags --libs opencv4`

然后运行程序:

./laplacian_example

注意事项

  • 使用 CV_16S 数据类型来避免溢出,因为拉普拉斯算子可能会产生负值。
  • 使用 cv::convertScaleAbs 将结果转换为可显示的格式。
  • 拉普拉斯算子对噪声敏感,常常需要在使用前对图像进行平滑处理(如使用高斯模糊)。

CUDA核函数

global void Inverse_kernel3(BYTE pImgOut, const BYTE pImgIn, int nWidth, int nHeight, int nWidthStep)
{
const int ix = blockIdx.x
blockDim.x + threadIdx.x;
const int iy = blockIdx.y
blockDim.y + threadIdx.y;

const int ix_1 = max(0, ix - 1);
const int ix1 = min(nWidth - 1, ix + 1);
const int iy_1 = max(0, iy - 1);
const int iy1 = min(nHeight - 1, iy + 1);
if (ix < nWidth && iy < nHeight)
{int nTemp;nTemp = pImgIn[iy_1*nWidthStep + ix];nTemp += pImgIn[iy*nWidthStep + ix_1];nTemp -= pImgIn[iy*nWidthStep + ix]<<2; //4次方nTemp += pImgIn[iy*nWidthStep + ix1];nTemp += pImgIn[iy1*nWidthStep + ix];nTemp = abs(nTemp);//nTemp = min(255, nTemp);nTemp = nTemp < 20 ? 0 : 255;pImgOut[iy*nWidthStep + ix] = nTemp;}

}

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

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

相关文章

Idea中集成SceneBuilder以及使用讲解

目录1 Idea中集成SceneBuilder1.1 Idea中集成SceneBuilder1.2 SceneBuilder1.2.1 添加组件ControlsFX1.2.1.1页面展示1.2.2 hierarchy displays1.3 简单使用1.3.1 搭建项目1.3.2 fxml文件1.3.3 生成exe文件2 SceneBuilder页面讲解2.1 Properties窗口预览2.2 Text面板2.2.1 Text…

JavaFX基础之环境配置,架构,FXML

目录1 JavaFX1.1 简介1.2 环境准备1.2.1 手动管理依赖1.2.2 maven或Gradle管理1.3 JavaFX 架构1.3.1 JavaFX 架构图1.3.2 JavaFX组件1.3.2.1 舞台1.3.2.2 场景1.3.2.3 控件1.3.2.4 布局1.3.2.5 图表1.3.2.6 2D图形1.3.2.7 3D图形1.3.2.8 声音1.3.2.9 视频1.4 简单使用1.5 FXML1…

编译原理-期末

第一章编译原理的基础问答设 A机器 上有 语言L 的编译程序,可以用它来编制B机器上的语言的编译程序,试用 T形图 进行表示。 通过自展完成C语言的编写,试描述这个过程。 画出编译程序的总体结构图,简要说明每个模块的功能 如何理解“单词是程序设计语言中具有独立意义的最小…

ESP8266及继电器电路图解析

ESP8266及继电器介绍 ESP8266概述:ESP8266 是一款低成本、低功耗的 Wi-Fi 芯片,由乐鑫信息科技(Espressif Systems)开发。它集成了 TCP/IP 协议栈,能够实现串口与 Wi-Fi 之间的转换,广泛应用于物联网(IoT)领域,如智能家居、智能穿戴、工业控制等。 特点:低功耗:在睡…

docker-compose部署下Fastapi中使用sqlalchemy和Alembic

本篇介绍使用Fastapi + sqlalchemy + alembic 来完成后端服务的数据库管理,并且通过docker-compose来部署后端服务和数据库Mysql。包括:1. 数据库创建,数据库用户创建 2. 数据库服务发现 3. Fastapi 连接数据库 4. Alembic 连接数据库 5. 服务健康检查本篇介绍使用Fastapi +…

误删除了表?PolarDB MySQL帮你恢复!完成就送2025蛇年春联!

由于DDL语句无法回滚,如果误删除了表(例如DROP TABLE),可能会导致数据丢失。PolarDB MySQL提供表回收站的功能,删除的表会被临时转移到表回收站。 通过本次操作,带您体验如何使用PolarDB MySQL提供表回收站的功能,从表回收站恢复误删的表。 完成任务赢奖励,活动火热进行…

《墨香古韵:传统与现代的完美融合》——传世经典的美,划破时空的风格和型

《墨香古韵:传统与现代的完美融合》 由“解锁AI超能”的邦林AIGC出品 一直叹服古人用那样少的笔墨,就可以塑造一个让人无限联想、余味无穷的作品。 而上帝造人,诸多完美,唯独留下一个大大的Bug, 那就是人想象不出自己没见闻过的东西,而有大师也曾说过,人的想象力总是先于…

学习 - Linux - Centos安装jdk8

Centos安装jdk8 安装包下载地址: 通过网盘分享的文件:jdk 链接: https://pan.baidu.com/s/1dQTMZk7foPZhOcw55QM_lQ?pwd=sky1 提取码: sky1 二、上传至Centos系统解压文件并移动到usr/local目录下 解压 tar zxvf jdk-8u181-linux-x64.tar.gz 移动 mv jdk1.8.0_181 /usr/loca…

CICD Day7、Jenkins Pipeline 常用指令及Pipeline快捷生成方式(片段生成器)

1、常用指令 在编写Pipeline脚本时,会涉及各种指令,这些指令用于实现构建过程中的不同功能。熟悉这些指令后,编写一个完整的Pipeline脚本将变得十分简单 1.1 shsh指令用于执行shell命令,配置示例如下stage(Build) {stage {sh hostname} }在上述配置中,在构建的过程中,执行…

DC-6 靶场通关小记

wordpress用户枚举、暴力破解得密码、CVE-2018-15877 plainview_activity_monitor RCE漏洞、水平权限提示、nmap --interative失效时 提权地址 https://www.vulnhub.com/entry/dc-6,315/环境配置 略,有问题可参考 https://www.cnblogs.com/lrui1/p/18655388 需要向hosts文件添…

【Java编程】一个高性能、支持百万级多任务重试框架:Fast-Retry

前言 假设你的系统里有100万个用户,然后你要轮询重试的获取每个用户的身份信息, 如果你还在使用SpringRetry和GuavaRetry 之类的这种单任务的同步重试框架,那你可能到猴年马月也处理不完,即使加再多的机器和线程也是杯水车薪,而Fast-Retry正是为这种场景而生。 Fast-Retry …