OpenCV——Scharr边缘检测

目录

  • 一、Scharr算法
    • 1、算法概述
    • 2、主要函数
  • 二、C++代码
  • 三、python代码
  • 四、结果展示
    • 1、灰度图
    • 2、X方向一阶边缘
    • 2、Y方向一阶边缘
    • 3、整幅图像的一阶边缘
  • 五、相关链接

在这里插入图片描述

OpenCV——Scharr边缘检测由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。

一、Scharr算法

1、算法概述

   Scharr边缘检测算法是对Sobel算子差异性的增强,因此两者在检测图像边缘的原理和使用方式上相同。Scharr算子的边缘检测滤波尺寸为3x3,因此也可称其为Scharr滤波器。可以通过将滤波器中的权重系数放大来增大像素见的差异,Scharr算子就是采用这种思想,其在X方向一阶Scharr边缘检测算子为:
[ − 3 0 3 − 10 0 10 − 3 0 3 ] (1) \left[ \begin{matrix} -3 & 0 & 3\\ -10 & 0 & 10 \\ -3 & 0 & 3 \end{matrix} \right] \tag{1} 31030003103 (1)
Y方向一阶Scharr边缘检测算子为:
[ − 3 10 − 3 0 0 0 3 10 3 ] (2) \left[ \begin{matrix} -3 & 10 & -3\\ 0 & 0 & 0 \\ 3 & 10 & 3 \end{matrix} \right] \tag{2} 30310010303 (2)

2、主要函数

void Scharr( InputArray src, OutputArray dst, int ddepth,int dx, int dy, double scale = 1, double delta = 0,int borderType = BORDER_DEFAULT )
  • src:传入的图像
  • ddepth:图像的深度,可以为-1、CV_16S、CV_32F、CV_64F。
  • dxdy:指的是求导的阶数,0表示这个方向上没有求导,所填的数一般为0、1、2。
  • scale:计算可选比例因子,默认值1 。
  • delta:加到输出像素的偏值,默认为0 。
  • borderType:边界类型,默认值BORDER_DEFAULT。

二、C++代码

#include <opencv2\opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main()
{//读取图像,黑白图像边缘检测结果较为明显Mat img = imread("2.jpg", IMREAD_ANYDEPTH);if (img.empty()){cout << "请确认图像文件名称是否正确" << endl;return -1;}Mat resultX, resultY, resultXY;//X方向一阶边缘Scharr(img, resultX, CV_16S, 1, 0);convertScaleAbs(resultX, resultX);//Y方向一阶边缘Scharr(img, resultY, CV_16S, 0, 1);convertScaleAbs(resultY, resultY);//整幅图像的一阶边缘resultXY = resultX + resultY;//显示图像imshow("resultX", resultX);imshow("resultY", resultY);imshow("resultXY", resultXY);waitKey(0);return 0;
}

三、python代码

import cv2img = cv2.imread("2.jpg")
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# -------------------Scharr边缘检测------------------------
x = cv2.Scharr(gray_img, cv2.CV_16S, 1, 0)
y = cv2.Scharr(gray_img, cv2.CV_16S, 0, 1)
# cv2.convertScaleAbs(src[, dst[, alpha[, beta]]])
# 可选参数alpha是伸缩系数,beta是加到结果上的一个值,结果返回uint类型的图像
Scharr_absX = cv2.convertScaleAbs(x)  # convert 转换  scale 缩放
Scharr_absY = cv2.convertScaleAbs(y)
result = cv2.addWeighted(Scharr_absX, 0.5, Scharr_absY, 0.5, 0)
# ----------------------显示结果----------------------------
cv2.imshow('origin_img', img)
cv2.imshow('img', gray_img)
cv2.imshow('Scharr_absX', Scharr_absX)
cv2.imshow('Scharr_absY', Scharr_absY)
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

四、结果展示

1、灰度图

在这里插入图片描述

2、X方向一阶边缘

在这里插入图片描述

2、Y方向一阶边缘

在这里插入图片描述

3、整幅图像的一阶边缘

在这里插入图片描述

五、相关链接

[1] Scharr(边缘提取)

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

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

相关文章

使用Python自动化操作手机,自动执行常见任务,例如滑动手势、呼叫、发送短信等等

使用Python自动化操作手机,自动执行常见任务,例如滑动手势、呼叫、发送短信等等。 此自动化脚本将帮助你使用 Python 中的 Android 调试桥 (ADB) 自动化你的智能手机。下面我将展示如何自动执行常见任务,例如滑动手势、呼叫、发送短信等等。 您可以了解有关 ADB 的更多信息,…

什么是网络安全,如何防范?

网络安全&#xff08;Cyber Security&#xff09;是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断。 网络安全涵盖了网络设备安全、网络信息安全…

优化管理流程 夯实管理基石

问团队就人才中心管理流程的梳理及优化设计、工作规范与管理制度梳理、跨部门与部门内部协作配合有效性等方面提出了诸多管理思路与方法工具&#xff0c;中心干部员工通过3个月的学习与参与项目&#xff0c;展现了更加积极的工作状态&#xff0c;并学习到了更为先进并科学的工作…

如何用AirServer进行手机投屏?,Airserver 永久激活注册码

AirServer一款投屏神器&#xff0c;可以帮你轻松地将iPhone、iPad投屏到Mac。是不是经常看到游戏主播用AirServer投屏&#xff1f;此外&#xff0c;AirServer也是视频Up主必备工具之一&#xff01;用来录制演示教程不错。除了实现单个手机投屏到电脑或荧幕。如果你有多画面投屏…

React进阶 - 12(浅谈 state、props与render函数的关系)

本章内容 目录 一、state 与 render 函数的关系二、props 与 render函数的关系 上一节我们讲了如何使用 PropTypes及 DefaultProps来进行属性的类型校验及设置属性默认值。本节内容我们来了解一下 state、props与render函数的关系。 一、state 与 render 函数的关系 我们知道…

C++中的const常量-->‘only read,can‘t change‘

2024年1月22日 ///昨天外面下雨地没干&#xff0c;骑车摔得好结实&#xff0c;,, 2024年1月23日 内容整理自The Cherno:C系列 这个关键字确实有点难&#xff0c;看了好几遍原视频整理出来的知识框架&#xff0c;还需要加以练习 -----------------------------------------…

【AI视野·今日Robot 机器人论文速览 第七十五期】Thu, 11 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Thu, 11 Jan 2024 Totally 16 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Analytical Model and Experimental Testing of the SoftFoot: an Adaptive Robot Foot for Walking over Obstacles and Irre…

spawn_group_template | spawn_group | linked_respawn

字段介绍 spawn_group | spawn_group_template 用来记录与脚本事件或boss战斗有关的 creatures | gameobjects 的刷新数据linked_respawn 用来将 creatures | gameobjects 和 boss 联系起来&#xff0c;这样如果你杀死boss&#xff0c; creatures | gameobjects 在副本重置之前…

「我在淘天做技术」智能对话新纪元:百万日活对话机器人的 LLM 落地实践

作者&#xff1a;智能小蜜团队 一、前言 阿里小蜜家族&#xff08;阿里小蜜、店小蜜、万象&#xff09;&#xff0c;从 2015 年发展至今&#xff0c;已经成为了覆盖淘天 P-C&#xff08;平台-消费者&#xff09;、B-C&#xff08;商家-消费者&#xff09;、P-B&#xff08;平台…

【明道云】【企业数字化】如何将明道云的数据直连SmartBi使用

【背景】 明道云优势在于上传和企业内部流程的系统化&#xff0c;换句话说&#xff0c;是产生数据的部分。 SmartBi优势在于生成报表和即席查询等&#xff0c;是使用沉淀数据的部分。 如果能将这两部分的数据打通&#xff0c;可以大大扩展企业数字化框架的覆盖范围。让这两套平…

【Linux】Linux进程信号(下)

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【Linux】…

独步IT界,开放API接口文档新标杆!

目录 1、简介 1.1 什么是API接口 1.2 为什么开放API接口 1.3 API接口的优势和应用领域 1.4 API接口的基本原则和设计准则 2、接口认证 2.1 认证方式和流程 2.2 API密钥的生成和管理 2.3 认证错误处理 3、接口调用 3.1 请求方法和URL规范 3.2 请求参数和格式 3.3 响…

遍历子网所有ip地址,寻找空闲ip

在cmd窗口下输入如下代码&#xff1a; for /l %i in (1,1,255) do ping -n 1 -w 60 10.183.27.%i | find "Reply" >> d:\pingall27.log 得到如下结果 上图中&#xff0c;有reply的代表该IP已经被占用。但是观察红框中 22-->25之间缺少23 24 则说明23/24 是…

ChatGPT到底好不好用?相比于搜索引擎的优势

在数字化时代&#xff0c;获取信息的方式正经历着翻天覆地的变化。搜索引擎曾经是我们获取信息的首选工具&#xff0c;但现在&#xff0c;随着人工智能技术的飞速发展&#xff0c;ChatGPT等智能聊天机器人正在逐渐改变我们搜索和处理信息的方式。那么&#xff0c;ChatGPT到底好…

宿舍安全用电监模块

学校宿舍安全用电监测模块是针对 0.4kV 以下的 TT、TN 系统设计的智能电力装置&#xff0c;具有单、三相交流电测量、四象限电能计量、谐波分析、开关量输入、继电器输出功能&#xff0c;以及 RS485 通讯或 GPRS 无线通讯功能&#xff0c;通过对配电回路的剩余电流、导线温度等…

理想架构的Doherty功率放大器理论与仿真

Doherty理论—理想架构的Doherty功率放大器理论与仿真 参考&#xff1a; 三路Doherty设计 01 射频基础知识–基础概念 ADS仿真工程文件链接&#xff1a;理想架构的Doherty功率放大器理论与仿真 目录 Doherty理论---理想架构的Doherty功率放大器理论与仿真0、Doherty架构的作用…

神经网络算法与逻辑回归:优势与差异

神经网络算法和逻辑回归都是预测模型中的重要工具&#xff0c;但它们在处理复杂和非线性问题时表现出不同的性能。本文将深入探讨神经网络算法相对于逻辑回归的优势&#xff0c;以及它们在不同场景下的适用性。 一、引言 神经网络算法和逻辑回归都是预测模型中的重要工具&…

Python - argparse模块

python中的argparse模块&#xff0c;用于命令后参数解析&#xff0c;方便测试&#xff0c;是python中自带的模块。 可以自动生成帮助文档&#xff0c;和使用手册。而且当用户在执行程序的时候&#xff0c;输入无效的参数时&#xff0c;会给出对应的错误信息。 使用方法&#…

贪吃蛇(C)

游戏背景&#xff1a;贪吃蛇是久负盛名的游戏&#xff0c;它也和俄罗斯⽅块&#xff0c;扫雷等游戏位列经典游戏的⾏列。 总&#xff1a; 游戏设计大纲&#xff1a; 使⽤C语⾔在Windows环境的控制台中模拟实现经典⼩游戏贪吃蛇。 实现的基本功能&#xff1a; 1、贪吃蛇地图绘制…

自己构建webpack+vue3+ts

先看看我的目录结构&#xff08;我全局使用TS&#xff09;&#xff1a; 一、安装配置webpack打包 安装esno npm install esnoesno 是基于 esbuild 的 TS/ESNext node 运行时,有了它&#xff0c;就可以直接通过esno *.ts的方式启动脚本&#xff0c;package.json中添加 type:…