cv2中的Sobel算子,convertScaleAbs(),addWeighted()


描述:cv2中的sobel算子

函數原型:

  dst = cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]])

 

參數

  前四個是必須的參數: 

  1. src - 需要處理的圖像

  2.  ddepth - 圖像的深度,-1表示采用的是與原圖像相同的深度。目標圖像的深度必須大於等於原圖像的深度

  3.  dx - 對x軸方向求導的階數,一般為0、1、2,其中0表示這個方向上沒有求導

  4.  dy - 對y軸方向求導的階數,一般為0、1、2,其中0表示這個方向上沒有求導

  其后是可選的參數: 

  5.  dst - 目標圖像

  6.  ksize - Sobel算子的大小,必須為1、3、5、7

  7.  scale -  縮放導數的比例常數,默認情況下沒有伸縮系數

  8.  delta - 可選增量, 將會加到最終的dst中,同樣,默認情況下沒有額外的值加到dst中

  9.  borderType - 圖像邊界的模式。這個參數默認值為cv2.BORDER_DEFAULT

 

功能:

  應用於圖像邊緣檢測

 

說明:

  1. 在經過處理后,需要用convertScaleAbs()函數將其轉回原來的uint8形式,否則將無法顯示圖像,而只是一副灰色的窗口。 

  函數原型:dst = cv2.convertScaleAbs(src[, dst[, alpha[, beta]]])   

    其中可選參數alpha是伸縮系數,beta是加到結果上的一個值,結果返回uint8類型的圖片

    # absX=cv2.convertScaleAbs(x)   # 轉回uint8

    # absY=cv2.convertScaleAbs(y)

  功能:實現將原圖片轉換為uint8類型

  2.  由於Sobel算子是在兩個方向計算的,最后還需要用cv2.addWeighted(...)函數將其組合起來 

  函數原型為:dst = cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]])   

    其中alpha是第一幅圖片中元素的權重,beta是第二個的權重, gamma是加到最后結果上的一個值

  功能:實現以不同的權重將兩幅圖片疊加,對於不同的權重,疊加后的圖像會有不同的透明度


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM