c++视觉处理---cv::Sobel()`算子

cv::Sobel()算子

cv::Sobel()是OpenCV库中的函数之一,用于计算图像的Sobel梯度。Sobel梯度是一种常用的图像处理技术,用于检测图像中的边缘和轮廓。

以下是cv::Sobel()函数的一般用法和参数:

void cv::Sobel(cv::InputArray src,       // 输入图像cv::OutputArray dst,      // 输出的梯度图像int ddepth,               // 输出图像的深度(通常为-1,表示与输入图像相同)int dx, int dy,           // x和y方向的导数阶数(通常为1)int ksize = 3,            // Sobel核的大小double scale = 1,         // 缩放因子double delta = 0,         // 可选的增量int borderType = cv::BORDER_DEFAULT // 边界填充类型
);
  • src: 输入图像,通常是灰度图像。
  • dst: 输出的梯度图像,包含了计算的梯度信息。
  • ddepth: 输出图像的深度,通常设置为-1,表示输出图像与输入图像的深度相同。
  • dxdy: x和y方向的导数阶数,通常都设置为1,表示计算一阶导数。
  • ksize: Sobel核的大小,通常为3,表示使用3x3的Sobel核。
  • scale: 缩放因子,可以用于调整梯度值的幅度。
  • delta: 可选的增量,可以用于进一步微调梯度值。
  • borderType: 边界填充类型,通常使用默认值cv::BORDER_DEFAULT

cv::Sobel()函数根据指定的参数计算输入图像的梯度信息。你可以选择计算x方向、y方向或两者方向的梯度。梯度图像的像素值表示了在图像中的每个位置上的梯度强度。

使用cv::Sobel()函数,你可以实现各种基于梯度的图像处理任务,如边缘检测、轮廓提取等。参数的不同设置可以影响计算的梯度效果,可以根据具体需求进行调整。

cv::cartToPolar:将直角坐标系中的两个图像转换为极坐标系中的梯度幅值和方向

cv::cartToPolar是OpenCV中的一个函数,用于将直角坐标系中的两个图像转换为极坐标系中的梯度幅值和方向。通常,它用于处理Sobel、Scharr等梯度算子的输出结果,将水平和垂直梯度转换为梯度幅值和方向。

以下是cv::cartToPolar函数的一般用法和参数:

void cv::cartToPolar(cv::InputArray x,           // 输入的x坐标图像(水平梯度)cv::InputArray y,           // 输入的y坐标图像(垂直梯度)cv::OutputArray magnitude,  // 输出的梯度幅值图像cv::OutputArray angle,      // 输出的梯度方向图像bool angleInDegrees = false // 是否输出梯度方向的角度(默认为弧度)
);
  • xy: 输入的水平和垂直梯度图像,通常来自梯度算子(如Sobel)的输出。
  • magnitude: 输出的梯度幅值图像,表示每个位置的梯度强度。
  • angle: 输出的梯度方向图像,表示每个位置的梯度方向。
  • angleInDegrees: 一个布尔值,用于指定是否输出梯度方向的角度(如果设置为true,则以度为单位;如果设置为false,则以弧度为单位)。

cv::cartToPolar函数执行以下计算:

  • 对于每个输入位置 (x, y),计算 (magnitude, angle),其中 magnitude(x, y) 的模长(梯度幅值),angle(x, y) 的极坐标角度(梯度方向)。

使用cv::cartToPolar函数可以方便地将梯度信息从直角坐标系转换为极坐标系,以便进一步处理和分析图像的梯度。通常,这在边缘检测和特征提取等图像处理任务中非常有用。

案例

#include <opencv2/opencv.hpp>
#include <iostream>int main() {// 读取输入图像cv::Mat inputImage = cv::imread("1.jpg", cv::IMREAD_GRAYSCALE);if (inputImage.empty()) {std::cerr << "Error: Could not read the input image." << std::endl;return -1;}// 创建输出的水平和垂直梯度图像cv::Mat gradientX, gradientY;// 计算水平梯度(x方向)cv::Sobel(inputImage, gradientX, CV_32F, 1, 0);// 计算垂直梯度(y方向)cv::Sobel(inputImage, gradientY, CV_32F, 0, 1);// 计算梯度幅值和方向cv::Mat gradientMagnitude, gradientDirection;cv::cartToPolar(gradientX, gradientY, gradientMagnitude, gradientDirection, true);// 显示原始图像和梯度图像cv::imshow("Original Image", inputImage);cv::imshow("计算水平梯度(x方向)", gradientX);cv::imshow("计算水平梯度(y方向)", gradientY);cv::imshow("计算梯度幅值梯度强度", gradientMagnitude);cv::imshow("计算梯度方向", gradientDirection);cv::waitKey(0);return 0;
}

在这里插入图片描述

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

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

相关文章

mysql面试题35:MySQL有关权限的表有哪些?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL有关权限的表有哪些? MySQL中与权限相关的表主要包括以下几个: user表:存储MySQL用户的基本信息,包括用户名、密码等。可以使用以下命令…

实现动态表单的一种思路 | 京东云技术团队

一、动态表单是什么 区别于传统表单前后端配合联调的开发实现方式&#xff0c;动态表单通过一种基于元数据管理的配置化方法来实现表单的动态生成&#xff0c;并能根据配置自由增改删指定字段。实现特定需求的自助化。 图1.1 传统表单前后台协作模式 图1.2 动态表单前后台协作…

计算机竞赛YOLOv7 目标检测网络解读

文章目录 0 前言1 yolov7的整体结构2 关键点 - backbone关键点 - head3 训练4 使用效果5 最后 0 前言 世界变化太快&#xff0c;YOLOv6还没用熟YOLOv7就来了&#xff0c;如果有同学的毕设项目想用上最新的技术&#xff0c;不妨看看学长的这篇文章&#xff0c;学长带大家简单的…

剑指offer——JZ37 序列化二叉树 解题思路与具体代码【C++】

一、题目描述与要求 序列化二叉树_牛客题霸_牛客网 (nowcoder.com) 题目描述 请实现两个函数&#xff0c;分别用来序列化和反序列化二叉树&#xff0c;不对序列化之后的字符串进行约束&#xff0c;但要求能够根据序列化之后的字符串重新构造出一棵与原二叉树相同的树。 二叉…

【算法|动态规划No.16】leetcode931. 下降路径最小和

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

2023年中国医院信息系统发展现状及行业市场规模分析[图]

医院信息系统&#xff0c;亦称“医院管理信息系统”&#xff08;简称HIS&#xff09;&#xff0c;是指利用计算机软硬件技术、网络通信技术等现代化手段&#xff0c;对医院及其所属各部门的人流、物流、财流进行综合管理&#xff0c;对在医疗活动各阶段产生的数据进行采集储存、…

vscode 调试使用 make 编译的项目

1、首先点击运行 --> 启动调试&#xff1a; 2、选择g或gcc生成和调试活动文件&#xff1a; 3、出现下面提示是正常的&#xff0c;点击仍要调试&#xff1a; 点击打开“launch.json”&#xff1a; 4、此时会在项目工作目录下生成tsak.josn和launch.json文件&#xff1a; 如…

力扣(LeetCode)2512. 奖励最顶尖的K名学生(C++)

优先队列哈希集合反向思维(或自定义排序) 模拟&#xff0c;请直接看算法思路&#xff1a; 两个哈希集合S1和S2, S1存正面词汇&#xff0c;S2存负面词汇&#xff1b;一个优先队列pq&#xff0c;pq存{score, id}键值对&#xff0c;即学生分数-学生id。 算法流程&#xff1a; 初…

Android 面经总结分享(相当走心)

背景描述 这是来自一位粉丝朋友的面经分享&#xff0c;他在 「Android 开发行业」 摸爬滚打5年多的开发&#xff0c;呆过的互联网公司有三家&#xff0c;均从事的Android 开发的工作。最后离职的一家公司也是做的最久的一家&#xff0c;工作了将近3年多时光。 废话不多说了&a…

山西电力市场日前价格预测【2023-10-12】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-12&#xff09;山西电力市场全天平均日前电价为506.23元/MWh。其中&#xff0c;最高日前电价为841.91元/MWh&#xff0c;预计出现在18: 30。最低日前电价为351.76元/MWh&#xff0c;预计…

1600*A. Maze(DFS)

Problem - 377A - Codeforces 解析&#xff1a; 对于正向思考比较复杂的题目&#xff0c;我们可以反向思考。 由于最后剩余的 “ . ” 必须相连&#xff0c;所以我们将所有 “ . ” 全部换成 “ X ”&#xff0c;然后从其中DFS一个联通的“ X ”反向换成 “ . ”即可。 #incl…

2023年中国医学影像信息系统市场规模、竞争格局及行业趋势分析[图]

医学影像信息系统简称PACS&#xff0c;与临床信息系统、放射学信息系统、医院信息系统、实验室信息系统同属医院信息系统。医学影像信息系统是处理各种医学影像信息的采集、存储、报告、输出、管理、查询的计算机应用程序。主要包括&#xff1a;预约管理、数据接收、影像处理、…