日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

opencv学习笔记16:梯度运算之scharr算子及其函数使用

發布時間:2024/9/30 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv学习笔记16:梯度运算之scharr算子及其函数使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前文介紹了sobel算子
opencv學習筆記14:sobel算子及其函數使用

scharr算子理論

系數和sobel不一樣,其他一樣。

scharr函數使用

dst=cv2.Scharr(src,ddpetph,dx,dy)
dst:處理結果
src:源圖像
ddpetph:圖像深度
dx:x軸方向,
dy:y軸方向

實際操作中,計算梯度值可能會出現負值而被截斷。通常處理的圖像類型為np.unit8,處理后的結果也是該類型,所有負數截斷為0,發生信息丟失。
所以,在計算時,使用更高的數據類型cv2.CV_64F,取絕對值后再轉換成np.unit8(cv2.CV_8U)。所以深度ddepth不寫-1,改cv2.CV_64F
cv2.convertScaleAbs(imgsrc)
取絕對值,并將梯度圖像轉換成256色位圖,轉換為unit8類型

scharr算例代碼

計算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) # 轉回uint8 cv2.imshow("original",o) cv2.imshow("x",scharrx) cv2.waitKey() cv2.destroyAllWindows()

計算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) # 轉回uint8 cv2.imshow("original",o) cv2.imshow("y",scharry) cv2.waitKey() cv2.destroyAllWindows()

計算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) # 轉回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()

錯誤示例:dx=1,dy=1
這點不同于sobel

import cv2 import numpy as np o = cv2.imread('scharr.bmp',cv2.IMREAD_GRAYSCALE) scharrxy11=cv2.Scharr(o,cv2.CV_64F,1,1) cv2.imshow("original",o) cv2.imshow("xy11",scharrxy11) cv2.waitKey() cv2.destroyAllWindows()

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對一個卷積核參數,默認為3.當卷積核=-1時,表示Scharr函數

總目錄鏈接:
python3+opencv學習筆記匯總目錄(適合基礎入門學習)

進階版梯度講解:
opencv進階學習筆記10:圖像金字塔和圖像梯度
電氣專業的計算機小白,寫博文不容易。如果你覺得本文對你有用,請點個贊支持下,謝謝。

總結

以上是生活随笔為你收集整理的opencv学习笔记16:梯度运算之scharr算子及其函数使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。