Opencv學習筆記(一) 閾值處理和輪廓檢測

2021-09-13 13:54:17 字數 1146 閱讀 9011

本系列會完成一些任務,順便講解裡面的一部分相關**,本系列為opencv的學習筆記,實踐篇將應用學習筆記完成一系列ocr任務

1.閾值處理和輪廓檢測

1.0 閾值輪廓的實踐

作用:選取乙個全域性閾值,然後就把整幅影象分成了非黑即白的二值影象了.

函式為cv2.threshold()

『ret, dst = cv2.threshold(src, thresh, maxval, type)』

這個函式有四個引數,

該函式有兩個返回值,第乙個retval(得到的閾值值),第二個就是閾值化後的影象。

前面看到簡單閾值是一種全域性性的閾值,只需要規定乙個閾值值,

整個影象都和這個閾值比較。而自適應閾值可以看成一種區域性性的閾值,

通過規定乙個區域大小,比較這個點與區域大小裡面畫素點的平均值(或者其

他特徵)的大小關係確定這個畫素點是屬於黑或者白(如果是二值情況)。

『dst = cv2.adaptivethreshold(src, maxval, thresh_type, type, block size, c)』

在cv2.threshold的方法引數中加上語句cv2.thresh_otsu,可以自動尋找比較適合的閾值

『ret2,th2 = cv2.threshold(img,0,255,cv2.thresh_binary+cv2.thresh_otsu)』

cv2.findcontours(image, mode, method[, contours[, hierarchy[, offset ]]])

返回值有兩個:

contour返回值:

cv2.findcontours()函式首先返回乙個list,list中每個元素都是影象中的乙個輪廓,用numpy中的ndarray表示。

hierarchy返回值:

此外,該函式還可返回乙個可選的hiararchy結果,這是乙個ndarray,其中的元素個數和輪廓個數相同,每個輪廓contours[i]對應4個hierarchy元素hierarchy[i][0] ~hierarchy[i][3],分別表示後乙個輪廓、前乙個輪廓、父輪廓、內嵌輪廓的索引編號,如果沒有對應項,則該值為負數。

Opencv學習筆記(三)基本閾值處理操作

為了從一副影象中提取出我們需要的部分,應該用影象中的每乙個畫素點的灰度值與選取的閾值進行比較,並作出相應的判斷。注意 閾值的選取依賴於具體的問題。即 物體在不同的影象中有可能會有不同的灰度值。opencv中提供了閾值函式 threshold 函式。函式作用 根據閾值和所選擇的閾值化型別,將閾值上下的...

opencv學習筆記 閾值分割

先選定乙個特定的閾值量,比如 127 新的閾值產生規則為 dst x,y maxval quad if quad src x,y thresh 0,otherwise end dst x,y 0 quad if quad src x,y thresh maxval,otherwise end dst...

opencv學習記錄之閾值處理

閾值處理是指將影象內高於一定值或者低於一定值的畫素點進行處理 函式形式為 retval dst cv2.thresshold src thresh maxval type retval代表返回的閾值 dst代表閾值分割結果影象,與原始影象有相同的大小和型別 src代表要進行分割的影象,可以是多通道的...