Python呼叫OpenCV閾值化

2021-09-26 22:44:40 字數 1907 閱讀 6599

這一篇主要有兩點:普通閾值化和自適應閾值化。

普通閾值化用到的函式是cv2.threshold,其函式原型為:

threshold(src, thresh, maxval, type, dst = none)
其中,type的取值有以下幾種cv2.thresh_binary、cv2.thresh_binary_inv、cv2.thresh_trunc、cv2.thresh_tozero、cv2.thresh_tozero_inv,其效果如下:

自適應閾值化的函式原型為:

adaptivethreshold(src, maxvalue, adaptivemethod, thresholdtype, blocksize, c, dst = none)
其中adaptivemethod的取值為cv2.adptive_thresh_mean_c:閾值取自相鄰區域的平均值和cv2.adptive_thresh_gaussian_c:閾值取值相鄰區域的加權和,權重為乙個高斯視窗;blocksize是領域的大小;c是乙個常數,閾值就等於的平均值或者加權平均值減去這個常數。

src = cv2.imread('lena.bmp', 0)

src1 = cv2.imread('lena.bmp', 0)

cv2.adaptivethreshold(src, 255, cv2.adaptive_thresh_mean_c, cv2.thresh_binary, 11, 2, src)

cv2.imshow('adaptive_thresh_mean_c', src)

cv2.adaptivethreshold(src1, 255, cv2.adaptive_thresh_gaussian_c, cv2.thresh_binary, 11, 2, src1)

cv2.imshow('adaptive_thresh_gaussian_c', src1)

cv2.waitkey(0)

cv2.destroyallwindows()

發現這個函式比較奇葩,最後乙個引數我這裡是用了原圖的變數來儲存,不用乙個新變數的原因是我在python3下用的是opencv3.4.1,如果用乙個dst代替的化就會報錯,執行的效果如下:

秋風淒切傷離,行客未歸時。塞外草先衰,江南雁到遲。芙蓉凋嫩臉,

楊柳墮新眉。

搖落使人悲,

斷腸誰得知。

Python呼叫OpenCV畫素操作

python呼叫opencv進行操作的時候基本上感覺就是對numpy進行操作,跟numpy是挺相關的。opencv獲取影象 x,y 處的畫素值 px img x,y 當影象是三通道的時候返回的是bgr三通道的值,如果是灰度圖的話就返回乙個亮度值 同樣的如果要對影象 x,y 處賦值的話,也通過這種方式...

Python呼叫OpenCV幾何變換

這一篇就記錄三個 影象縮放 平移和映象。影象縮放用到的函式是cv2.resize 函式,函式原型如下 resize src,dsize,dst none,fx none,fy none,interpolation none opencv提供了幾種縮放方式 cv2.inter area cv2.int...

OpenCV常用基本處理函式(4)簡單變換,閾值等

2 下面的 none 本應該是輸出影象的尺寸,但是因為後邊我們設定了縮放因子3 因此這裡為 none 4 res cv2.resize img,none,fx 2,fy 2,interpolation cv2.inter cubic 5 or6 這裡呢,我們直接設定輸出影象的尺寸,所以不用設定縮放因...