婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > OpenCV-Python實現圖像梯度與Sobel濾波器

OpenCV-Python實現圖像梯度與Sobel濾波器

熱門標簽:聊城語音外呼系統 ai電銷機器人的優勢 地圖標注自己和別人標注區別 打電話機器人營銷 騰訊地圖標注沒法顯示 孝感營銷電話機器人效果怎么樣 海外網吧地圖標注注冊 商家地圖標注海報 南陽打電話機器人

圖像梯度

圖像梯度計算的是圖像變化的速度。對于圖像的邊緣部分,其灰度值變化較大,梯度值也較大;相反,對于圖像中比較平滑的部分,其灰度值變化較小,相應的梯度值也較小。一般情況下,圖像的梯度計算是圖像的邊緣信息。

其實梯度就是導數,但是圖像梯度一般通過計算像素值的差來得到梯度的近似值,也可以說是近似導數。該導數可以用微積分來表示。

在微積分中,一維函數的一階微分的基本定義是這樣的:


而圖像是一個二維函數f(x,y),其微分當然就是偏微分。因此有:


因為圖像是一個離散的二維函數,ϵ不能無限小,我們的圖像是按照像素來離散的,最小的ϵ就是1像素。因此,上面的圖像微分又變成了如下的形式(ϵ=1):


這分別是圖像在(x, y)點處x方向和y方向上的梯度,從上面的表達式可以看出來,圖像的梯度相當于2個相鄰像素之間的差值。

那么,這個梯度(或者說灰度值的變化率)如何增強圖像的清晰度呢?

我們先考慮下x方向,選取某個像素,假設其像素值是100,沿x方向的相鄰像素分別是90,90,90,則根據上面的計算其x方向梯度分別是10,0,0。這里只取變化率的絕對值,表明變化的大小即可。


我們看到,100和90之間亮度相差10,并不是很明顯,與一大群90的連續灰度值在一起,輪廓必然是模糊的。我們注意到,如果相鄰像素灰度值有變化,那么梯度就有值,如果相鄰像素灰度值沒有變化,那么梯度就為0。如果我們把梯度值與對應的像素相加,那么灰度值沒有變化的,像素值不變,而有梯度值的,灰度值變大了。


我們看到,相加后的新圖像,原圖像像素點100與90亮度只相差10,現在是110與90,亮度相差20了,對比度顯然增強了,尤其是圖像中物體的輪廓和邊緣,與背景大大加強了區別,這就是用梯度來增強圖像的原理。

上面只是說了x方向,y方向是一樣的。那么能否將x方向和y方向的梯度結合起來呢?當然是可以的。x方向和y方向上的梯度可以用如下式子表示在一起:


這里又是平方,又是開方的,計算量比較大,于是一般用絕對值來近似平方和平方根的操作,來降低計算量:


原理了解后,我們來了解一些OpenCV提供了哪些梯度濾波器?

在OpenCV中,它給我們提供了三種不同的梯度濾波器,或者說高通濾波器:Sobel,Scharr 和Laplacian。什么叫高通呢?其實就是和圖像模糊相反。圖像模糊是讓低頻通過,阻擋高頻,這樣就可以去除噪點,讓銳利的邊緣變平滑。高通濾波器就是讓高頻通過,阻擋低頻,可以讓邊緣更加明顯,增強圖像。

Sobel濾波器

Sobel濾波器是一種離散的微分算子,該算子結合了高斯平滑和微分求導運算。該算子利用局部差分尋找邊緣,計算所得的是一個梯度的近似值。

具體的原理如下:

將Sobel濾波器與原始圖像進行卷積計算,可以計算水平方向上的像素值變化情況。例如,當Sobel濾波器的大小為3*3時,水平方向偏導數的計算方式如下:


如果需要計算P5水平方向偏導數(梯度),則公式如下:

P5x=(P3-P1)+2*(P6-P4)+(P9-P7)

如果需要計算P5垂直方向偏導數(梯度),則公式如下:

P5y=(P7-P1)+2*(P8-P2)+(P9-P3)

在OpenCV中,它給我們提供cv2.Sobel()函數實現Sobel濾波器,其函數定義如下:

def Sobel(src, ddepth, dx, dy, dst=None, ksize=None, scale=None, delta=None, borderType=None):

src:原始圖像

ddepth:輸出圖像的深度,詳細取值如下表:

輸入圖像深度 輸出圖像深度
cv2.CV_8U -1/cv2.CV_16S/cv2.CV_32F/cv2/CV_64F
cv2.CV_16U/cv2.CV_16S -1/cv2.CV_32F/cv2.CV_64F
cv2.CV_32F -1/cv2.CV_32F/cv2.CV_64F
cv2.CV_64F -1/cv2.CV_64F

dx:代表X方向的求導階數

dy:代表Y方向的求導階數

ksize:Sobel核的大小,該值為-1時,則會使用Sobel濾波器進行運算

scale:計算導數值所采用的縮放因子,默認值為1,時沒有縮放的

delta:加載目標圖像上的值,該值可選,默認為0

borderType:邊界樣式,前面博文有詳細介紹,這里不在贅述。

需要注意的是,如果將ddepth參數設置為-1,讓處理結果與原圖像保持一致,可以會得到錯誤的結果。實際上,這么做會導致梯度值可能出現負數。如果處理的是8位圖像,意味著指定運算的結果也是8位圖類型,那么所有的負數會自動截斷為0,發生信息丟失。為了避免信息丟失,在計算時先使用更高的數據類型cv2.CV_64F,再通過取絕對值將其映射為cv2.CV_8U類型。所以,我們使用Sobel濾波器常常會將ddepth設置為cv2.CV_64F。

計算X方向梯度語法格式為:

cv2.Sobel(src,ddepth,1,0)

計算Y方向梯度語法格式為:

cv2.Sobel(src,ddepth,0,1)

計算XY方向梯度語法格式為:

cv2.Sobel(src,ddepth,1,1)

計算XY疊加梯度語法格式為:

dx=cv2.Sobel(src,ddepth,1,0)
dy=cv2.Sobel(src,ddepth,0,1)
dst=cv2.addWeighted(src1,alpha,src2,beta,gamma)

因為可能會出現負數,我們還需要使用另一個函數取絕對值,該函數為:cv2.convertScaleAbs(),其完整定義如下:

def convertScaleAbs(src, dst=None, alpha=None, beta=None):

alpha:調節系數,可選值,默認為1

beta:調節亮度值,默認為0

下面,我們來使用Sobel濾波器,獲取圖像水平方向的邊緣信息,代碼如下:

import cv2

img = cv2.imread("4.jpg", cv2.IMREAD_UNCHANGED)
sobel_x=cv2.Sobel(img,cv2.CV_64F,1,0)
result=cv2.convertScaleAbs(sobel_x)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()

運行之后,效果如下所示:


接著,我們來使用Sobel濾波器,獲取圖像垂直方向的邊緣信息,代碼如下:

import cv2

img = cv2.imread("4.jpg", cv2.IMREAD_UNCHANGED)
sobel_y=cv2.Sobel(img,cv2.CV_64F,0,1)#更改這一行就行
result=cv2.convertScaleAbs(sobel_y)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()

運行之后,效果如下:


接著,我們來計算XY方向梯度,代碼如下:

import cv2

img = cv2.imread("4.jpg", cv2.IMREAD_UNCHANGED)
sobel_xy=cv2.Sobel(img,cv2.CV_64F,1,1)#都設置為1
result=cv2.convertScaleAbs(sobel_xy)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()

運行之后,效果如下:


最后,我們來計算其水平垂直兩個方向的疊加邊緣信息,代碼如下:

import cv2

img = cv2.imread("4.jpg", cv2.IMREAD_UNCHANGED)
sobel_x=cv2.Sobel(img,cv2.CV_64F,1,0)
sobel_y=cv2.Sobel(img,cv2.CV_64F,0,1)
abx_x=cv2.convertScaleAbs(sobel_x)
abx_y=cv2.convertScaleAbs(sobel_y)
result=cv2.addWeighted(sobel_x,0.5,sobel_y,0.5,0)
cv2.imshow("img", img)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()

運行之后,效果如下:

到此這篇關于OpenCV-Python實現圖像梯度與Sobel濾波器的文章就介紹到這了,更多相關OpenCV 圖像梯度與Sobel濾波器內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • opencv 圖像濾波(均值,方框,高斯,中值)
  • opencv3/C++圖像濾波實現方式
  • python+opencv實現高斯平滑濾波
  • 理想高通濾波實現Python opencv示例
  • opencv+python實現均值濾波
  • python-opencv 中值濾波{cv2.medianBlur(src, ksize)}的用法
  • opencv實現輪廓高斯濾波平滑
  • opencv實現圖像濾波之雙邊濾波

標簽:六盤水 聊城 撫州 南寧 迪慶 揚州 牡丹江 楊凌

巨人網絡通訊聲明:本文標題《OpenCV-Python實現圖像梯度與Sobel濾波器》,本文關鍵詞  OpenCV-Python,實現,圖像,梯度,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《OpenCV-Python實現圖像梯度與Sobel濾波器》相關的同類信息!
  • 本頁收集關于OpenCV-Python實現圖像梯度與Sobel濾波器的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人亚洲精品久久久久软件| 欧美精品一区二区精品网| 亚洲一区日韩精品中文字幕| 国产女人水真多18毛片18精品视频| 91黄色免费观看| 国产91精品免费| 国产激情一区二区三区四区 | 粉嫩一区二区三区在线看| 日日夜夜一区二区| 青青青爽久久午夜综合久久午夜| 亚洲国产成人精品视频| 麻豆国产精品视频| 亚洲在线视频网站| 亚洲精品日产精品乱码不卡| ...xxx性欧美| 亚洲乱码国产乱码精品精的特点| 中文字幕日韩av资源站| 自拍视频在线观看一区二区| 久久草av在线| 毛片av中文字幕一区二区| 激情小说欧美图片| 国产成人综合亚洲网站| 高清不卡在线观看| 久久精品国产亚洲5555| 丝袜脚交一区二区| 激情久久五月天| 青椒成人免费视频| 亚洲成av人片在线| 日韩一区二区三区在线观看| 精品国产乱码久久久久久免费| 91网址在线看| 欧美色综合影院| 777精品伊人久久久久大香线蕉| 精品视频1区2区3区| 欧美电影一区二区| 欧美一区二区在线视频| 日韩欧美一二区| 久久久久久久久久久黄色| 久久久久久9999| 亚洲三级小视频| 亚洲同性gay激情无套| 亚洲午夜在线视频| 国产综合色在线| 91天堂素人约啪| 久久综合九色综合97婷婷女人| 国产婷婷精品av在线| 一区二区三区在线视频播放| 一区在线观看免费| 乱一区二区av| 91亚洲精品乱码久久久久久蜜桃| 洋洋av久久久久久久一区| 亚洲精品视频观看| 裸体健美xxxx欧美裸体表演| 成人激情电影免费在线观看| 欧美一级高清片在线观看| 久久久久久一二三区| 一区二区三区四区不卡在线| 激情综合网天天干| 91福利在线导航| 欧美国产97人人爽人人喊| 欧美激情综合网| 轻轻草成人在线| 日韩欧美视频在线| 亚洲免费三区一区二区| 国产资源精品在线观看| 日韩免费在线观看| 亚洲男人天堂av网| 丁香亚洲综合激情啪啪综合| 欧美日韩成人在线一区| 亚洲欧洲日韩在线| 日韩精品一卡二卡三卡四卡无卡| 成人avav影音| 欧美岛国在线观看| 91免费版在线| 精品第一国产综合精品aⅴ| 丝袜脚交一区二区| 欧美伦理影视网| 一区二区三区蜜桃网| 波多野结衣视频一区| 日韩欧美国产综合一区 | 国产成人亚洲综合a∨婷婷图片| 国产91综合一区在线观看| 欧美一二三在线| 午夜精品一区在线观看| 欧美卡1卡2卡| 一区二区三区在线影院| 成人激情黄色小说| 亚洲制服丝袜在线| 97超碰欧美中文字幕| 国产在线精品一区二区| 欧美日韩三级在线| 亚洲综合精品自拍| 日韩午夜在线影院| 麻豆国产欧美日韩综合精品二区| 91精品啪在线观看国产60岁| 视频一区二区国产| 国产欧美1区2区3区| 一本一本大道香蕉久在线精品| 一个色综合av| 精品久久久网站| 99久久综合狠狠综合久久| 亚洲自拍都市欧美小说| 精品视频在线视频| 精品一区二区精品| 国产午夜精品一区二区| 色哟哟一区二区三区| 中文字幕亚洲一区二区va在线| 欧美色精品在线视频| 亚洲国产精品ⅴa在线观看| 7777精品伊人久久久大香线蕉经典版下载| 夜夜精品视频一区二区| av电影在线观看完整版一区二区| 亚洲欧洲国产日韩| 欧美色综合网站| 成人精品免费网站| 日韩国产精品91| 欧美影院一区二区三区| 夜夜嗨av一区二区三区四季av| 在线看国产一区| 成人在线综合网| 欧美在线观看你懂的| 国产精品美女一区二区在线观看| 99国产精品一区| 亚洲成人精品在线观看| 国产精品久久久久aaaa| 成人动漫一区二区| 天涯成人国产亚洲精品一区av| 精品毛片乱码1区2区3区| 在线视频你懂得一区| 亚洲国产中文字幕在线视频综合| 精品国产青草久久久久福利| 色婷婷综合五月| 亚洲女性喷水在线观看一区| 久久亚洲私人国产精品va媚药| 91国偷自产一区二区三区成为亚洲经典 | 在线免费观看成人短视频| 久久国产综合精品| 欧美极品aⅴ影院| 91影视在线播放| 国产一区二区三区四区在线观看| 国产日本欧洲亚洲| 色噜噜狠狠一区二区三区果冻| 亚洲成人av资源| 亚洲天堂久久久久久久| 国产精品毛片久久久久久| 欧美日韩一区在线观看| 国产精品888| 精品视频在线看| 国产精品美女www爽爽爽| 日韩一区在线播放| 国产精品久久一卡二卡| 久久久综合网站| 成人黄色电影在线| 九九国产精品视频| 国产精品久久看| 一区二区三区四区五区视频在线观看| 国产精品美女久久久久久久网站| 久色婷婷小香蕉久久| 欧美色区777第一页| 欧美一级在线视频| 欧美成人aa大片| 国产精品入口麻豆九色| 蜜臀av性久久久久av蜜臀妖精 | 一本大道久久a久久综合婷婷| 豆国产96在线|亚洲| 欧美日韩一区二区欧美激情| 日韩亚洲欧美综合| 午夜影视日本亚洲欧洲精品| 国产成人免费视| 日韩三级视频在线看| 综合中文字幕亚洲| 免费成人av在线播放| 精东粉嫩av免费一区二区三区| 国产精品18久久久久久vr| 欧美吞精做爰啪啪高潮| 日韩av电影免费观看高清完整版| 亚洲精品va在线观看| 狂野欧美性猛交blacked| a级精品国产片在线观看| 欧美一区国产二区| 亚洲一区二区三区小说| 成人h动漫精品一区二| 精品sm在线观看| 偷拍与自拍一区| 日本精品裸体写真集在线观看| 国产精品天美传媒| 国产在线精品一区二区三区不卡| 欧美性一区二区| √…a在线天堂一区| 不卡在线视频中文字幕| 精品日韩99亚洲| 精品久久久久久久久久久久久久久久久| 日韩综合一区二区| 欧美丰满少妇xxxbbb| 午夜精品久久久| 制服.丝袜.亚洲.中文.综合| 日韩一区二区三区免费看 | 香蕉乱码成人久久天堂爱免费| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 一区二区三区 在线观看视频|