opencv-圖像梯度

目標
? 圖像梯度,圖像邊界等
? 使用到的函數有:cv2.Sobel(),cv2.Schar(),cv2.Laplacian() 等
原理
梯度簡單來說就是求導。
OpenCV 提供了三種不同的梯度濾波器,或者說高通濾波器:Sobel,Scharr 和 Laplacian。我們會意義介紹他們。
Sobel,Scharr 其實就是求一階或二階導數。Scharr 是對 Sobel(使用小的卷積核求解求解梯度角度時)的優化。Laplacian 是求二階導數。

1.Sobel 算子和 Scharr 算子

Sobel 算子是高斯平滑與微分操作的結合體,所以它的抗噪聲能力很好。 你可以設定求導的方向(xorder 或
yorder)。還可以設定使用的卷積核的大 小(ksize)。

import cv2
import numpy as np
# 讀取灰度圖像
img = cv2.imread(r"C:\Users\mzd\Desktop\opencv\images.jpg", cv2.IMREAD_GRAYSCALE)
# 計算水平方向的Sobel梯度
sobelx = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3)
# 計算垂直方向的Sobel梯度
sobely = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=3)
# 顯示原始圖像和Sobel梯度圖像
cv2.imshow('Original Image', img)
cv2.imshow('Sobel X', sobelx)
cv2.imshow('Sobel Y', sobely)
# 等待用戶按下任意鍵
cv2.waitKey(0)
cv2.destroyAllWindows()

在這里插入圖片描述

圖像梯度是圖像中灰度變化的一種度量,通常用于檢測圖像中的邊緣或者區域的變化。在圖像處理中,常用的梯度計算方法包括Sobel、Scharr、Laplacian等。

Sobel算子:

Sobel算子是一種常用的梯度計算方法,分為水平和垂直兩個方向。在OpenCV中,cv2.Sobel() 函數用于計算圖像的Sobel梯度。

基本語法如下:

sobelx = cv2.Sobel(src, ddepth, dx, dy, ksize[, dst[, scale[, delta[, borderType]]]])
  • src: 輸入圖像。
  • ddepth: 輸出圖像的深度,通常使用 -1 表示與輸入圖像相同。
  • dxdy: 分別表示水平和垂直方向的梯度階數。
  • ksize: Sobel核的大小,通常為1、3、5等奇數。
  • dst(可選): 輸出圖像。
  • scale(可選): 縮放因子,通常為1。
  • delta(可選): 一個可選的增量,將被加到輸出。
  • borderType(可選): 邊界處理的方式,通常為默認值 cv2.BORDER_DEFAULT
  1. Laplacian算子:

Laplacian算子用于計算圖像的二階導數,從而得到圖像的梯度。在OpenCV中,cv2.Laplacian() 函數用于計算Laplacian梯度。

基本語法如下:

laplacian = cv2.Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]])

參數說明與Sobel類似,其中 ksize 表示Laplacian核的大小。

import cv2
import numpy as np
# 讀取灰度圖像
img = cv2.imread(r"C:\Users\mzd\Desktop\opencv\images.jpg", cv2.IMREAD_GRAYSCALE)
# 計算Laplacian梯度
laplacian = cv2.Laplacian(img, cv2.CV_64F)# 顯示原始圖像和Laplacian梯度圖像
cv2.imshow('Original Image', img)
cv2.imshow('Laplacian', laplacian)# 等待用戶按下任意鍵
cv2.waitKey(0)
cv2.destroyAllWindows()

在這里插入圖片描述

這些梯度計算方法可以幫助檢測圖像中的邊緣和區域變化,對于后續的圖像分析和處理非常有用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161147.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161147.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161147.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

萬界星空科技QMS質量管理系統介紹

QMS(Quality Management System)質量管理系統是五大基礎系統之一,在工業企業中被廣泛的應用,在質量策劃、生產過程質量監督、體系審核和文檔管理等業務上發揮著不可替代的作用。 一般制造業工廠現狀:質量成本高&#x…

使用 COPY 加速 PostgreSQL 批量插入

文章目錄 1.copy命令介紹2.copy vs insert的優勢3.測量性能4.結論 1.copy命令介紹 PostgreSQL 中的命令COPY是執行批量插入和數據遷移的強大工具。它允許快速有效地將大量數據插入表中。 COPY命令為批量插入和數據遷移提供了更簡單且更具成本效益的解決方案。 可以避免使用諸…

基于SSM的課程資源管理系統

末尾獲取源碼 開發語言:Java Java開發工具:JDK1.8 后端框架:SSM 前端:采用JSP技術開發 數據庫:MySQL5.7和Navicat管理工具結合 服務器:Tomcat8.5 開發軟件:IDEA / Eclipse 是否Maven項目&#x…

電力感知邊緣計算網關產品設計方案-網關系統通信架構方案

1.邊緣協同控制模發 能針對建筑、充電樁、分布式儲能、分布式光伏等典型設備建立對應物模型、完成數據采集通信協議設計和控制指令交互設計,能針對建筑、充換電站等典型場景提出具體實施方案和人工智能控制算法和邏輯。物模型、通信協議設計和控制指令交互設計科學、先進,能…

聚類系列(一)——什么是聚類?

目前在做聚類方面的科研工作, 看了很多相關的論文, 也做了一些工作, 于是想出個聚類系列記錄一下, 主要包括聚類的概念和相關定義、現有常用聚類算法、聚類相似性度量指標、聚類評價指標、 聚類的應用場景以及共享一些聚類的開源代碼 下面正式進入該系列的第一個部分&#xff…

webpack打包三方庫直接在html里面使用

場景:我是小程序中使用wxmp-rsa庫進行加密,然后在html里面解密 我就想把wxmp-rsa庫打包到一個js里面,然后在html里面直接引入使用。 webpack配置 const path require("path"); const MiniCssExtractPlugin require("mini-…

【MybatisPlus】簡介與使用

MyBatisPlus 1.簡介 MyBatisPlus(簡稱MP)是一個MyBatis的增強工具,在MyBatis的基礎上只做增強不做改變,為簡化開發、提高效率而生 官網:https://baomidou.com/ MyBatis-Plus特性: 無侵入:只…

C_1練習題

一、單項選擇題(本大題共20小題,每小題2分,共40分。在每小題給出的四個備選項中,選出一個正確的答案,并將所選項前的字母填寫在答題紙的相應位置上。) 若 x 為int 型變量,則執行以下語句后,x的值為() x5; xx*x; A. 25 B.-20 C. 20 D.-25 若x、i、j、k都…

C#學習相關系列之Linq用法---group和join相關用法(三)

一、Group用法 在C#的LINQ中&#xff0c;Grou將集合中的元素按照指定的鍵進行分組。Group方法返回一個IEnumerable<IGrouping<TKey, TElement>>類型的集合&#xff0c;其中TKey表示分組的鍵類型&#xff0c;TElement表示集合中元素的類型。每個IGrouping<TKey, …

php如何實現文件上傳

php實現文件上傳需要通過全局變量&#xff08;數組&#xff09;&#xff1a;$_FILES 結合 move_uploaded_file 函數來實現。 move_uploaded_file函數&#xff08;只對POST方式生效&#xff09;&#xff1a; 其中move_uploaded_file函數語法&#xff1a;move_uploaded_file(需要…

Vue生成二維碼并進行二維碼圖片下載

1、安包 npm install vue-qr --save2、引入 // vue2.0 import VueQr from vue-qr // vue3.0 import VueQr from vue-qr/src/packages/vue-qr.vue new Vue({components: {VueQr} })<!-- 設備二維碼 對話框 270px--><el-dialog title"點位二維碼" :visible.…

超級簽名封號掉簽該怎么辦

如果超級簽名封號掉簽了&#xff0c;可以考慮以下幾種解決方法&#xff1a; 聯系簽名服務商&#xff1a;首先&#xff0c;可以聯系簽名服務商&#xff0c;了解封號的原因和解決方案。app封裝打包可能會提供技術支持或幫助恢復簽名。 檢查簽名配置&#xff1a;確認簽名配置是否…

練習題——【學習補檔】庫函數的模擬實現

各種庫函數的模擬實現 一、模擬實現strlen1.地址-地址型2.遞歸型3.計數器型 二、模擬實現strcpy三、模擬實現strcmp四、模擬實現strcat五、模擬實現strstr 一、模擬實現strlen 模擬實現strlen有三種方法 1.地址-地址型 2.遞歸型 3.計數器型1.地址-地址型 // //1.地址-地址型 …

云服務器-從零搭建前后端服務

使用須知 選擇0M帶寬不能訪問公網&#xff08;不分配公網IP&#xff09;&#xff0c;如需分配公網IP請增加帶寬值。云服務器ECS默認不開啟虛擬內存如您需要使用請登錄云服務器內部操作。Linux開啟swap&#xff08;虛擬內存&#xff09;、Windows虛擬內存的設置若您購買了數據盤…

含分布式電源的配電網可靠性評估matlab程序

微?關注“電氣仔推送”獲得資料&#xff08;專享優惠&#xff09; 參考文獻&#xff1a; 基于仿射最小路法的含分布式電源配電網可靠性分析——熊小萍 主要內容&#xff1a; 通過概率模型和時序模型分別進行建模&#xff0c;實現基于概率模型最小路法的含分布式電源配電網…

web需求記錄

需求1&#xff1a;根據后端傳過來的設備名:DESKTOP-4DQRGQB&#xff0c;以及mac:e0:be:03:74:40:0b&#xff1b;iQOO-8&#xff0c;mac:b0:33:66:38:c3:25&#xff0c;用web option 是動態增加的&#xff08;也就是那個選擇框里面的東西是根據后端傳過來的值動態增加的&#xf…

upload-labs關卡12(基于白名單的%00截斷繞過)通關思路

文章目錄 前言一、靶場需要了解的前置知識1、%00截斷2、0x00截斷3、00截斷的使用條件1、php版本小于5.3.292、magic_quotes_gpc Off 二、靶場第十二關通關思路1、看源代碼2、bp抓包%00截斷3、驗證文件是否上傳成功 總結 前言 此文章只用于學習和反思鞏固文件上傳漏洞知識&…

LL(1)語法分析程序設計與實現

制作一個簡單的C語言詞法分析程序_用c語言編寫詞法分析程序-CSDN博客文章瀏覽閱讀322次。C語言的程序中&#xff0c;有很單詞多符號和保留字。一些單詞符號還有對應的左線性文法。所以我們需要先做出一個單詞字符表&#xff0c;給出對應的識別碼&#xff0c;然后跟據對應的表格…

國民新旅游時代,OTA們如何制勝新周期?

文 | 螳螂觀察&#xff08;TanglangFin&#xff09; 作者 | 圖霖 消費全面復蘇的大背景下&#xff0c;旅游業正迎來預期中的拐點。 一個顯著表現是&#xff0c;旅游消費正在從可選消費轉化成必選消費。 國內消費者旅游需求的不降反增&#xff0c;就是最好的印證。 同程研究…

DoFaker: 一個簡單易用的換臉工具

DoFaker: 一個簡單易用的換臉工具 基于insightface開發&#xff0c;可以輕松替換視頻或圖片中的人臉。支持windows和linux系統&#xff0c;CPU和GPU推理。onnxruntime推理&#xff0c;無需pytorch。 更新 2023/9/16 更新動作遷移算法2023/9/14 更新臉部增強算法(GFPGAN)和超分…