OpenCV图像滤波(18)空间梯度计算函数spatialGradient()的使用

embedded/2024/10/25 8:17:28/
  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

计算图像在x和y两个方向上的一阶导数,使用Sobel算子。
等价于调用:

Sobel( src, dx, CV_16SC1, 1, 0, 3 );
Sobel( src, dy, CV_16SC1, 0, 1, 3 );

spatialGradient() 函数主要用于图像处理和计算机视觉领域,通常是在像 OpenCV 或 MATLAB 这样的计算框架中使用。该函数的主要目的是计算图像的空间梯度,这对于边缘检测和特征提取非常重要。

函数原型

void cv::spatialGradient	
(InputArray 	src,OutputArray 	dx,OutputArray 	dy,int 	ksize = 3,int 	borderType = BORDER_DEFAULT 
)		

参数

  • 参数src 原始输入图像。
  • 参数dx 输出图像,包含x方向上的一阶导数。
  • 参数dy 输出图像,包含y方向上的一阶导数。
  • 参数ksize Sobel算子的大小,必须设置为3。
  • 参数orderType 边界处理方式,默认为BORDER_DEFAULT,这通常是BORDER_REFLECT_101。BORDER_REPLICATE也是一种支持的边界处理方式。

代码示例


include <iostream>
#include <opencv2/opencv.hpp>int main()
{// 加载原始图像cv::Mat src = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/erik.jpg", cv::IMREAD_GRAYSCALE );if ( src.empty() ){std::cout << "Could not open or find the image" << std::endl;return -1;}cv::Size sz2Sh( 400, 600 );cv::resize( src, src, sz2Sh, 0, 0, cv::INTER_LINEAR_EXACT );// 定义输出图像cv::Mat dx, dy;cv::spatialGradient(src, dx, dy);// 转换回 CV_8Ucv::convertScaleAbs( dx, dx );cv::convertScaleAbs( dy, dy );// 显示梯度图像imshow("origianl image", src);cv::imshow( "Gradient X", dx );cv::imshow( "Gradient Y", dy );cv::waitKey();return 0;
}

运行结果

在这里插入图片描述


http://www.ppmy.cn/embedded/97992.html

相关文章

机器学习辅助复合材料预测,性能管理优化创新材料,这种王炸般的组合,还真是大开眼界!

在人工智能与复合材料技术融合的背景下&#xff0c;复合材料的研究和应用正迅速发展&#xff0c;创新解决方案层出不穷。从复合材料性能的精确预测到复杂材料结构的智能设计&#xff0c;从数据驱动的材料结构优化到多尺度分析&#xff0c;人工智能技术正以其强大的数据处理能力…

ShardingSphere、雪花算法、分布式id生成器CosID概述

ShardingSphere 用处&#xff1a;sharding是分片的意思&#xff0c;sphere是球&#xff08;生态的意思&#xff09;。用来做分库分表的生态的。一个订单表太大&#xff0c;查询会很慢&#xff0c;要分表&#xff0c;分为3个表&#xff0c;这样查询会快一点&#xff0c;所以有了…

S7协议转HTTP协议

如下来源成都纵横智控-https://www.iotrouter.com/ 需求概述 本章要实现一个流程&#xff1a;EG8200采集西门子S7-200Smart的数据&#xff0c;并组装成JSON格式通过HTTP上报应用平台。 要采集的PLC点位表如下&#xff1a; PLC S7-200 Smart IP 192.168.0.34/102 点表(DB1…

鸿蒙Harmony实战开发知识:“UIAbility组件的3种启动模式”

UIAbility的启动模式是指UIAbility实例在启动时的不同呈现状态。针对不同的业务场景&#xff0c;系统提供了三种启动模式&#xff1a; singleton启动模式 singleton启动模式为单实例模式&#xff0c;也是默认情况下的启动模式。 每次调用startAbility()方法时&#xff0c;如…

【系统架构设计】开发方法(二)

【系统架构设计】开发方法&#xff08;二&#xff09; 软件生命周期软件开发模型统一过程敏捷方法极限编程特征驱动开发Scrum水晶方法开放式源码ASD 软件重用基于架构的软件设计形式化方法 软件生命周期 软件开发模型 统一过程 敏捷方法 所谓敏捷开发&#xff0c;个人认为&…

HTTP协议中的Cookie和Session

文章目录 HTTP协议中的Cookie和Session1、HTTP协议中的Cookie1.1、概念1.2、工作原理1.3、分类1.4、安全性和用途1.5、Cookie基本格式1.6、代码Cookie测试 2、HTTP协议中的Session2.1、概念2.2、工作原理2.3、安全性和用途2.4、代码测试Session 3、总结和补充 HTTP协议中的Cook…

销售预测数据挖掘实战V2.0

1、概述 沃尔玛全年都会举办几次促销减价活动。这些减价活动都是在重要节假日之前进行的&#xff0c;其中最大的四个节假日是超级碗、劳动节、感恩节和圣诞节。包括这些节假日在内的几周在评估中的权重是非节假日周的五倍。在缺乏完整/理想历史数据的情况下&#xff0c;对这些…

Android内存优化之OnTrimMemory简介

Android内存优化之OnTrimMemory简介 一、前言二、 API 介绍2.1、哪些组件可以实现OnTrimMemory回调2.2、level参数的含义2.2.1、应用正在运行时&#xff1a;2.2.2、应用的可见性发生变化时&#xff1a;2.2.3、应用的进程位于后台 LRU 列表中时&#xff1a; 3、示例代码 三、拓展…