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 的更多信息,…

2695. 包装数组

说在前面 &#x1f388;不知道大家对于算法的学习是一个怎样的心态呢&#xff1f;为了面试还是因为兴趣&#xff1f;不管是出于什么原因&#xff0c;算法学习需要持续保持。 题目描述 创建一个名为 ArrayWrapper 的类&#xff0c;它在其构造函数中接受一个整数数组作为参数。该…

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

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

json数据转换为file文件格式

const jsonData {name:小明,age:18}; //转成字符串 const jsonStrings JSON.stringify(jsonData); // 创建Blob对象 const blob new Blob([jsonStrings],{type:application/json}); //转成文件 const file new File([blob],fileName.json,{type:application/json});

kaafka的rebalance机制

Kafka的Rebalance机制是为了实现高可用和负载均衡而设计的。当Kafka集群中的消费者组发生变化时&#xff08;例如有新的消费者加入或有消费者离开&#xff09;&#xff0c;Rebalance机制会自动重新分配分区给消费者&#xff0c;以确保每个消费者分配到大致相等的负载。 下面是…

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

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

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

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

原神启动(递推,矩阵)

Part 1. 引子 求有多少 1 ∼ n 1\sim n 1∼n的排列&#xff0c;满足&#xff1a; 进行 k k k轮原神排序后变为升序 具体的&#xff0c;一轮原神排序的定义为&#xff1a; 指针 i i i按 [ 1 , n ) [1,n) [1,n)的顺序正序遍历&#xff0c;如果 a i > a i 1 a_i>a_{i1}…

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;平台…

C++学习笔记--数组

数组 所谓数组&#xff0c;就是一个集合&#xff0c;里面存放了相同类型的数据元素 特点1&#xff1a;数组中的每个元素数据元素都是相同的数据类型 特点2&#xff1a;数组是由连续的内存位置组成的 一维数组 一维数组定义的三种方式&#xff1a; 1、数据类型 数组名 [数…

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

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

恭喜!中移集成、广西移动、辽宁移动三家客户学员通过亚信安慧AntDB ACP认证

新年伊始&#xff0c;中移集成、广西移动、辽宁移动三家客户燃起了极大的学习热情&#xff0c;联合亚信安慧AntDB数据库团队共同组织了第二期亚信安慧AntDB数据库中级培训。三家客户分别遴选各自优秀的高级运管人员参与本期培训。 培训安排及成果 为方便学员合理安排工作、学习…

【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到底好…