OpenCV | 图像梯度sobel算子、scharr算子、lapkacian算子

import cv2 #opencv读取的格式是BGR
import numpy as np
import matplotlib.pyplot as plt#Matplotlib是RGB
%matplotlib inline

1、sobel算子

img = cv2.imread('pie.png',cv2.IMREAD_GRAYSCALE)
cv2.imshow('img',img)
cv2.waitKey()
cv2.destroyAllWindows()

pie图片

 dst = cv2.Sobel(src,ddepth,dx,dy,ksize)
- ddepth:图像的深度
- dx和dy分别表示水平和竖直方向
- ksize是Sobel算子的大小 

def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows()sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
cv_show(sobelx,'sobelx')#白到黑是正数,黑道白就是负数了,所有负数会被截断成0,所以要取绝对值sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
sobelx = cv2.convertScaleAbs(sobelx)
cv_show(sobelx,'sobelx')sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)
sobely = cv2.convertScaleAbs(sobely)
cv_show(sobely,'sobely')#分别计算x和y,再求和sobelxy = cv2.addWeighted(sobelx,0.5,sobely,0.5,0)
cv_show(sobelxy,'sobelxy')

运行完图片

2、图像梯度-Scharr算子 图像梯度-laplacian算子

scharr算子:

 laplacian算子:

原图片

灰度化:

img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)
cv_show(img,'img')

lena图片

#不同算子的差异
img = cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=3)
sobelx = cv2.convertScaleAbs(sobelx)
sobely = cv2.convertScaleAbs(sobely)
sobelxy = cv2.addWeighted(sobelx,0.5,sobely,0.5,0)scharrx = cv2.Scharr(img,cv2.CV_64F,1,0)
scharry = cv2.Scharr(img,cv2.CV_64F,0,1)
scharrx = cv2.convertScaleAbs(scharrx)
scharry = cv2.convertScaleAbs(scharry)
scharrxy = cv2.addWeighted(scharrx,0.5,scharry,0.5,0)laplacian = cv2.Laplacian(img,cv2.CV_64F)
laplacian = cv2.convertScaleAbs(laplacian)res = np.hstack((sobelxy,scharrxy,laplacian))
cv_show(res,'res')

运行完图片 

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

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

相关文章

vue3+vite搭建cesium项目

1.创建项目 cnpm create vite 2.安装依赖 npm i cesium vite-plugin-cesium vite -D 3.在vite.config.js里进行配置 import { defineConfig } from vite import vue from vitejs/plugin-vue import cesium from vite-plugin-cesium; export default defineConfig({plugins…

NCo3.1(08) - Nco3 服务器端编程

本篇博文不再重复ABAP调用外部服务器的基础,只介绍 NCo3 开发的过程和要点。需要了解相关知识点的小伙伴们自行参考: SAP接口编程 之JCo3.0系列(06) - Jco服务器端编程 PyRFC 服务器端编程要点 创建项目 新建一个 Console 项目,选择 .Net …

失落的艺术:无着色器3D渲染

假设你想创建一个甜蜜的弹跳立方体,如下所示: 一个弹跳的立方体 你可以使用 3D 框架,例如 OpenGL 或 Metal。 这涉及编写一个或多个顶点着色器来变换 3D 对象,以及编写一个或多个片段着色器来在屏幕上绘制这些变换后的对象。 然…

配置阿里云的yum仓库

目录 配置阿里云的yum源 清理官方yum源 下载阿里云的yum源 centos7下载阿里云yum源: 清理yum缓存:yum cleam all 生成自己的yum缓存:yum makecache 使用centos自带的官方yum源下载很慢,那今天来跟大家说说配置阿里云的yum仓…

Python中对数组连续赋值的问题

问题描述 在python中,首先用两个等号对两个数组进行初始化并赋值。之后,对任何一个数组进行赋值,都会将其赋予相同值。 import numpy as np Array1 Array2 np.empty(2) Array1[0],Array2[0]70,80 print(Array1[0],Array2[0])80.0 80.0 …

旋转的数组

分享今天看到的一个题目,不同思路解法 题目 思路1:时间复杂度0(N*k) void rotate(int *a,int N,int k)//N为数组元素个数 { while(k--) { int tema[N-1]; for(int rightN-2;right>0;right--) { a[right1]a[right]; } a[0]tem; …

聊聊VMware vSphere

VMware vSphere是一种虚拟化平台和云计算基础设施解决方案,由VMware公司开发。它为企业提供了一种强大的虚拟化和云计算管理平台,能够在数据中心中运行、管理和保护应用程序和数据。vSphere平台与VMware ESXi虚拟化操作系统相结合,提供了完整…

水果编曲软件FL Studio21最新中文版本2023年最新FL 21中文版如何快速入门教程

水果编曲软件FL Studio介绍 各位,大家晚上好,今天给大家带来最新最新2023水果编曲软件FL Studio 21中文版下载安装激活图文教程。我们一起先了解一些FL Studio 。FL Studio21是目前流行广泛使用人数最多音乐编曲宿主制作DAW软件,这款软件相信…

JavaWeb | JSP访问数据库、JDBC操作

目录: 1.JDBC简介2.Statement 和 PreparedStatement 的区别3.导入连接数据库Jar包4.JDBC操作4.1 Statement操作使用Statement“添加数据”使用Statement“删除数据”使用Statement“修改数据”使用Statement“查询数据” 4.2 PreparedStatement操作使用PreparedStatement“添加…

java开发需要用到的软件,必备软件工具一览

java开发需要用到的软件,必备软件工具一览 如果你对Java编程感兴趣或已经是一名Java开发者,你需要一些必备的软件工具来提高你的生产力和简化开发过程。在本文中,我们将探讨Java开发所需的关键软件工具,并通过具体示例来解释它们的…

最新消息:滴滴 P0 事故原因,原因出来了

最新消息滴滴P0故障原因,是由于k8s集群升级导致的,后面又进行版本回退,由于现在大型互联网公司基本都是基于K8s进行部署的,如果K8s集群一出问题,上面运行的业务Pod和运维系统全部都得宕机,导致没法回滚。 …

二叉树(判断是否为单值二叉树)

题目(力扣): 判断二叉树上每个节点的值是否相同,就需要让root节点分别与左节点和右节点分别比较是否相同。 注意:root等于空时,直接可以返回true; 首先,先判断他的特殊情况&#x…

如何在安防视频监控平台EasyCVR首页增添统计设备每个小时的温度展示功能?细节如下

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

BLIoTLink软网关,一键解决OT层与IT层的通信

在工业自动化领域,协议转换一直是一个重要的问题。不同的设备、系统往往使用不同的通信协议,这给数据采集、设备接入等带来很大的困扰。为了解决这个问题,各种协议转换软件应运而生。其中,BLIoTLink作为一款功能强大的嵌入式工业协…

Unity一些常用的接口

Unity中一些常用的接口,系统自带的。 在这里只是整理了一下Unity中常用的接口,一般情况下,都是自己写接口,但是有时候也会使用到系统自带,在此整理一下。后续如果还有的话,继续在此加入。 事件相关的接口…

常使用的定时任务

常使用的定时任务 一、 linux自带的定时任务 1、crontab 有这样一个需求:我们使用Java写一个工具jar包在系统空闲的时候去采集已经部署在Linux系统上的项目的一 些数据,可以使用 linux 系统的 crontab。 运行crontab -e,可以编辑定时器&…

Centos7上安装nginx,并配置开机自启

1、安装前置插件 yum -y install gcc-c pcre pcre-devel openssl openssl-devel 2、下载安装包 下载地址:nginx: download 这里最好使用最新的安装包,过老的版本会有一堆系统漏洞需要修复 #进入源码放置目录 这里最好放在好找的地方,后…

[密码学]DES

先声明两个基本概念 代换(substitution),用别的元素代替当前元素。des的s-box遵循这一设计。 abc-->def 置换(permutation),只改变元素的排列顺序。des的p-box遵循这一设计。 abc-->bac DES最核心的算法就是…

区块链相关技术、概念以及技术实现过程中的一些关键问题 Smart Contracts and Blockchains

作者:禅与计算机程序设计艺术 1.简介 2017年底,区块链已经成为众多投资人和技术人员最关注的话题之一。随着现实世界的不断复杂化、数字货币的流行以及IoT设备的普及,加密数字货币市场正变得越来越活跃。由于区块链具有去中心化、不可篡改、透明性、高并发等特点,使其在金…

Spark分布式安装模式

Spark 分布式环境安装目前有四种模式: 1.Standalone:Spark 自带的简单群资源管理器,安装较为简单,不需要依赖 Hadoop; 2.Hadoop YARN:使用 YARN 作为集群资源管理,安装需要依赖 Hadoop; 3.Ap…