opencv学习笔记16:梯度运算之scharr算子及其函数使用
前文介紹了sobel算子
opencv學(xué)習(xí)筆記14:sobel算子及其函數(shù)使用
scharr算子理論
系數(shù)和sobel不一樣,其他一樣。
scharr函數(shù)使用
dst=cv2.Scharr(src,ddpetph,dx,dy)
dst:處理結(jié)果
src:源圖像
ddpetph:圖像深度
dx:x軸方向,
dy:y軸方向
實(shí)際操作中,計(jì)算梯度值可能會(huì)出現(xiàn)負(fù)值而被截?cái)唷MǔL幚淼膱D像類型為np.unit8,處理后的結(jié)果也是該類型,所有負(fù)數(shù)截?cái)酁?,發(fā)生信息丟失。
所以,在計(jì)算時(shí),使用更高的數(shù)據(jù)類型cv2.CV_64F,取絕對(duì)值后再轉(zhuǎn)換成np.unit8(cv2.CV_8U)。所以深度ddepth不寫-1,改cv2.CV_64F
cv2.convertScaleAbs(imgsrc)
取絕對(duì)值,并將梯度圖像轉(zhuǎn)換成256色位圖,轉(zhuǎn)換為unit8類型
scharr算例代碼
計(jì)算x軸梯度
import cv2 import numpy as np o = cv2.imread('scharr.bmp',cv2.IMREAD_GRAYSCALE) scharrx = cv2.Scharr(o,cv2.CV_64F,1,0) scharrx = cv2.convertScaleAbs(scharrx) # 轉(zhuǎn)回uint8 cv2.imshow("original",o) cv2.imshow("x",scharrx) cv2.waitKey() cv2.destroyAllWindows()計(jì)算y軸梯度
import cv2 import numpy as np o = cv2.imread('scharr.bmp',cv2.IMREAD_GRAYSCALE) scharry = cv2.Scharr(o,cv2.CV_64F,0,1) scharry = cv2.convertScaleAbs(scharry) # 轉(zhuǎn)回uint8 cv2.imshow("original",o) cv2.imshow("y",scharry) cv2.waitKey() cv2.destroyAllWindows()計(jì)算dx+dy
import cv2 import numpy as np o = cv2.imread('scharr.bmp',cv2.IMREAD_GRAYSCALE) scharrx = cv2.Scharr(o,cv2.CV_64F,1,0) scharry = cv2.Scharr(o,cv2.CV_64F,0,1) scharrx = cv2.convertScaleAbs(scharrx) # 轉(zhuǎn)回uint8 scharry = cv2.convertScaleAbs(scharry) scharrxy = cv2.addWeighted(scharrx,0.5,scharry,0.5,0) cv2.imshow("original",o) cv2.imshow("xy",scharrxy) cv2.waitKey() cv2.destroyAllWindows()錯(cuò)誤示例:dx=1,dy=1
這點(diǎn)不同于sobel
dx >= 0 && dy >= 0 && dx+dy == 1
注意:
dst=cv2.Scharr(src,cv2.CV_64F,dx,dy)
等于
dst=cv2.Sobel(src,cv2.CV_64F,dx,dy,-1)
Sobel對(duì)一個(gè)卷積核參數(shù),默認(rèn)為3.當(dāng)卷積核=-1時(shí),表示Scharr函數(shù)
總目錄鏈接:
python3+opencv學(xué)習(xí)筆記匯總目錄(適合基礎(chǔ)入門學(xué)習(xí))
進(jìn)階版梯度講解:
opencv進(jìn)階學(xué)習(xí)筆記10:圖像金字塔和圖像梯度
電氣專業(yè)的計(jì)算機(jī)小白,寫博文不容易。如果你覺(jué)得本文對(duì)你有用,請(qǐng)點(diǎn)個(gè)贊支持下,謝謝。
總結(jié)
以上是生活随笔為你收集整理的opencv学习笔记16:梯度运算之scharr算子及其函数使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 年息5%是多少
- 下一篇: opencv学习笔记17:梯度运算之la