(十三)图像的拉普拉斯梯度锐化

2024-03-31 08:52

本文主要是介绍(十三)图像的拉普拉斯梯度锐化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境:Windows10专业版 + IDEA2021.2.3 + jdk11.0.1 + OpenCV-460.jar

系列文章:

(一)Python+GDAL实现BSQ,BIP,BIL格式的相互转换

(二)BSQ,BIL,BIP存储格式的相互转换算法

(三)单波段图像的伪彩色合成:密度分割(含介绍OpenCV中的Mat类)

(四)图像的%2线性拉伸

(五)图像的标准假彩色合成

(六)图像的直方图均衡化

(七)图像的均值滤波

(八)图像的中值滤波

(九)图像的高斯低通滤波

(十)图像的梯度倒数加权平滑

(十一)图像的罗伯特梯度锐化

(十二)图像的Sobel梯度锐化

(十三)图像的拉普拉斯梯度锐化

目录

一、拉普拉斯梯度锐化简介

二、算法流程

三、具体实现

四、实验结果 

1、读入的图像

2、经过拉普拉斯算子处理后的图像


一、拉普拉斯梯度锐化简介

拉普拉斯梯度锐化是一种基于图像二阶微分处理的图像增强技术,主要用于提高图像的细节清晰度和边缘识别能力。

以下是该技术的关键点:

1、基本原理:拉普拉斯算子的核心是对图像进行二阶微分运算,以突出像素间灰度值变化剧烈的区域。一阶微分可以描述图像灰度的变化方向,而二阶微分则描述了这种变化的速率。因此,通过计算图像每个像素点的二阶导数,可以检测出图像中的边缘和细节部分。

2、操作过程:在数字图像处理中,拉普拉斯算子通常通过卷积核来实现。这个卷积核会在图像上逐像素移动,对每个像素点的邻域进行加权求和计算,得出该点的二阶导数值。如果一个像素点的值小于其邻域内的平均值,它的值会降低,反之则会提高,这样增强了图像中心像素与其周围像素的对比度,从而实现了图像锐化。

3、应用方法:将拉普拉斯图像与原图叠加,可以得到最终的锐化效果。这个过程相当于高通滤波,它增强了图像的高频成分(即边缘和细节),同时衰减和抑制了低频成分(即平滑区域)。

4、应用场景:这种锐化技术广泛应用于电子印刷、医学成像、工业检测等领域,有助于改善图像质量,使图像中的细节更加清晰可见。

5、优缺点:能对任何走向的界线和线条进行锐化,无方向性;但对噪声比较敏感,会放大噪声。

拉普拉斯梯度锐化通过对图像进行二次微分处理,强化了图像的边缘及细节信息,有助于提升图像的清晰度和可识别性。

二、算法流程

(以单波段图像为例)

1、利用OpenCV读入图像,将像素存储在数组里

2、标准拉普拉斯算子的模板为:

3、将经过拉普拉斯算子处理后的像素值存入数组合成图像并存储

三、具体实现

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;/*** @Author: HNUST_jue_chen* @Date: 2022/11/05/ 15:29* @Attention: 转载, 引用请注明出处*/public class LaplaceOperator {//加载本地动态链接库static {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}//拉普拉斯算子public Mat laplaceSharping(String path) {//使用Mat类存储图像信息Mat mat = Imgcodecs.imread(path);//图像的大小int rows = mat.rows();int cols = mat.cols();//获得原图像像素数组int[][] mat_arr = new int[rows][cols];for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {mat_arr[i][j] = (int) mat.get(i, j)[0];}}//使用拉普拉斯算子进行锐化int[][] mat_arr_laplaceSharp = new int[rows][cols];for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {//处理非边缘的像素if (i != 0 && i != rows - 1 && j != 0 && j != cols - 1) {mat_arr_laplaceSharp[i][j] = (mat_arr[i - 1][j] + mat_arr[i][j - 1]+ mat_arr[i][j + 1] + mat_arr[i + 1][j] - mat_arr[i][j] * 4);} else {    //处理边缘像素mat_arr_laplaceSharp[i][j] = mat_arr[i][j];}}}//合成图像Mat mat_laplaceSharp = new Mat(rows, cols, CvType.CV_32SC1);//将像素放入图像for (int i = 0; i < rows; i++) {//一次放入一行像素值mat_laplaceSharp.put(i, 0, mat_arr_laplaceSharp[i]);}return mat_laplaceSharp;}public static void main(String[] args) {LaplaceOperator lo = new LaplaceOperator();Mat mat = lo.laplaceSharping("D:\\Project\\IDEA_Project\\RS01\\src\\rs01\\img\\2_gray.png");//将经过拉普拉斯锐化后的图像写入文件Imgcodecs.imwrite("D:\\Project\\IDEA_Project\\RS01\\src\\rs01\\img\\2_gray_lo.png", mat);}
}

四、实验结果 

1、读入的图像

2、经过拉普拉斯算子处理后的图像

这篇关于(十三)图像的拉普拉斯梯度锐化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/863936

相关文章

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^

JavaSE(十三)——函数式编程(Lambda表达式、方法引用、Stream流)

函数式编程 函数式编程 是 Java 8 引入的一个重要特性,它允许开发者以函数作为一等公民(first-class citizens)的方式编程,即函数可以作为参数传递给其他函数,也可以作为返回值。 这极大地提高了代码的可读性、可维护性和复用性。函数式编程的核心概念包括高阶函数、Lambda 表达式、函数式接口、流(Streams)和 Optional 类等。 函数式编程的核心是Lambda

AI学习指南深度学习篇-带动量的随机梯度下降法的基本原理

AI学习指南深度学习篇——带动量的随机梯度下降法的基本原理 引言 在深度学习中,优化算法被广泛应用于训练神经网络模型。随机梯度下降法(SGD)是最常用的优化算法之一,但单独使用SGD在收敛速度和稳定性方面存在一些问题。为了应对这些挑战,动量法应运而生。本文将详细介绍动量法的原理,包括动量的概念、指数加权移动平均、参数更新等内容,最后通过实际示例展示动量如何帮助SGD在参数更新过程中平稳地前进。

【python计算机视觉编程——7.图像搜索】

python计算机视觉编程——7.图像搜索 7.图像搜索7.1 基于内容的图像检索(CBIR)从文本挖掘中获取灵感——矢量空间模型(BOW表示模型)7.2 视觉单词**思想****特征提取**: 创建词汇7.3 图像索引7.3.1 建立数据库7.3.2 添加图像 7.4 在数据库中搜索图像7.4.1 利用索引获取获选图像7.4.2 用一幅图像进行查询7.4.3 确定对比基准并绘制结果 7.

【python计算机视觉编程——8.图像内容分类】

python计算机视觉编程——8.图像内容分类 8.图像内容分类8.1 K邻近分类法(KNN)8.1.1 一个简单的二维示例8.1.2 用稠密SIFT作为图像特征8.1.3 图像分类:手势识别 8.2贝叶斯分类器用PCA降维 8.3 支持向量机8.3.2 再论手势识别 8.4 光学字符识别8.4.2 选取特征8.4.3 多类支持向量机8.4.4 提取单元格并识别字符8.4.5 图像校正

Cmake之3.0版本重要特性及用法实例(十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧

AI学习指南深度学习篇-带动量的随机梯度下降法简介

AI学习指南深度学习篇 - 带动量的随机梯度下降法简介 引言 在深度学习的广阔领域中,优化算法扮演着至关重要的角色。它们不仅决定了模型训练的效率,还直接影响到模型的最终表现之一。随着神经网络模型的不断深化和复杂化,传统的优化算法在许多领域逐渐暴露出其不足之处。带动量的随机梯度下降法(Momentum SGD)应运而生,并被广泛应用于各类深度学习模型中。 在本篇文章中,我们将深入探讨带动量的随

HalconDotNet中的图像特征与提取详解

文章目录 简介一、边缘特征提取二、角点特征提取三、区域特征提取四、纹理特征提取五、形状特征提取 简介   图像特征提取是图像处理中的一个重要步骤,用于从图像中提取有意义的特征,以便进行进一步的分析和处理。HalconDotNet提供了多种图像特征提取方法,每种方法都有其特定的应用场景和优缺点。 一、边缘特征提取   边缘特征提取是图像处理中最基本的特征提取方法之一,通过检