OpenCV學(xué)習(xí)之圖像梯度算子詳解
本文是OpenCV圖像視覺(jué)入門(mén)之路的第12篇文章,本文詳細(xì)的介紹了圖像梯度算子的各種操作,例如:Sobel算子Scharr算子laplacian算子等操作。

1.Sobel算子
Sobel算子是一種圖像邊緣檢測(cè)算子,它是一種空間濾波器,可以檢測(cè)圖像中的邊緣,而梯度運(yùn)算是一種求導(dǎo)數(shù)的方法,可以用來(lái)檢測(cè)圖像中的局部變化。
import cv2
import numpy as np
from numpy import unicode
if __name__ == '__main__':
# 不同算子的差異
img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
sobel_x = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3)
sobel_y = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=3)
sobel_x = cv2.convertScaleAbs(sobel_x)
sobel_y = cv2.convertScaleAbs(sobel_y)
sobel_xy = cv2.addWeighted(sobel_x, 0.5, sobel_y, 0.5, 0)
cv2.imshow("sobel_xy", sobel_xy)
img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

2.Scharr算子
Sobel算子是一種圖像邊緣檢測(cè)算法,它可以檢測(cè)圖像中的水平邊緣和垂直邊緣。它使用卷積核來(lái)檢測(cè)圖像中的邊緣,并且可以檢測(cè)出圖像中的細(xì)微變化。OpenCV是一個(gè)計(jì)算機(jī)視覺(jué)庫(kù),它提供了一系列的函數(shù),可以用來(lái)處理圖像,包括Sobel算子。OpenCV提供了一系列的函數(shù),可以用來(lái)處理圖像,包括Sobel算子,但它也提供了其他的圖像處理算法,如Canny邊緣檢測(cè)算法,Hough變換算法等。
import cv2
import numpy as np
from numpy import unicode
if __name__ == '__main__':
img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
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)
cv2.imshow("scharrxy", scharrxy)
img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

3.laplacian算子
Laplacian算子是一種圖像處理技術(shù),它可以用來(lái)檢測(cè)圖像中的邊緣和輪廓。它是一種二階微分算子,可以用來(lái)檢測(cè)圖像中的邊緣,并且可以用來(lái)檢測(cè)圖像中的噪聲。它的基本原理是,它會(huì)計(jì)算圖像中每個(gè)像素點(diǎn)的梯度,并且根據(jù)梯度的大小來(lái)檢測(cè)圖像中的邊緣。
import cv2
import numpy as np
from numpy import unicode
if __name__ == '__main__':
img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
laplacian = cv2.Laplacian(img, cv2.CV_64F)
laplacian = cv2.convertScaleAbs(laplacian)
cv2.imshow("laplacian", laplacian)
img = cv2.imread('D:/Jupyter_Notebooks/0.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
到此這篇關(guān)于OpenCV學(xué)習(xí)之圖像梯度算子詳解的文章就介紹到這了,更多相關(guān)OpenCV圖像梯度算子內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python語(yǔ)法 range() 序列類型range
這篇文章主要介紹了python語(yǔ)法 range() 序列類型range,range是一種序列類型,range類型用于表示不可變的整數(shù)序列,下面小編整理了簡(jiǎn)單內(nèi)容,需要的小伙伴可以參考一下2022-01-01
利用Python連接Oracle數(shù)據(jù)庫(kù)的基本操作指南
由于之前的在職的公司沒(méi)有機(jī)會(huì)接觸到Oralce數(shù)據(jù)庫(kù),所以就沒(méi)有用python連接過(guò)Oralce,之前大多集中在連接mysql和sql server,最近在做一下web自動(dòng)化的工作,所以簡(jiǎn)單的記錄一下,下面這篇文章主要給大家介紹了關(guān)于利用Python連接Oracle數(shù)據(jù)庫(kù)的基本操作,需要的朋友可以參考下2022-06-06
Python Sleep休眠函數(shù)使用簡(jiǎn)單實(shí)例
這篇文章主要介紹了Python Sleep休眠函數(shù)使用簡(jiǎn)單實(shí)例,本文直接給出兩個(gè)實(shí)現(xiàn)例子,需要的朋友可以參考下2015-02-02
python項(xiàng)目下生成requirements.txt方法
這篇文章主要介紹了python項(xiàng)目下生成requirements.txt的方法,很多小伙伴不知道如何生成requirements.txt,本文就通過(guò)代碼示例給大家詳細(xì)介紹如何生成,,需要的朋友可以參考下2023-06-06
簡(jiǎn)單實(shí)現(xiàn)python爬蟲(chóng)功能
這篇文章主要介紹了python實(shí)現(xiàn)簡(jiǎn)單爬蟲(chóng)功能的相關(guān)資料,感興趣的小伙伴們可以參考一下2015-12-12
Python使用matplotlib 模塊scatter方法畫(huà)散點(diǎn)圖示例
這篇文章主要介紹了Python使用matplotlib 模塊scatter方法畫(huà)散點(diǎn)圖,結(jié)合實(shí)例形式分析了Python數(shù)值運(yùn)算與matplotlib模塊圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
使用Python-OpenCV消除圖像中孤立的小區(qū)域操作
這篇文章主要介紹了使用Python-OpenCV消除圖像中孤立的小區(qū)域操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07

