自適應閾值化的函式為:
自適應閾值方法
void cvadaptivethreshold( const cvarr* src, cvarr* dst, double max_value,srcint adaptive_method=cv_adaptive_thresh_mean_c,
int threshold_type=cv_thresh_binary,
int block_size=3, double param1=5 );
輸入影象.
dst輸出影象.
max_value
使用 cv_thresh_binary 和 cv_thresh_binary_inv 的最大值.
adaptive_method
自適應閾值演算法使用:cv_adaptive_thresh_mean_c 或 cv_adaptive_thresh_gaussian_c (見討論).
threshold_type
取閾值型別:必須是下者之一
block_size
用來計算閾值的象素鄰域大小: 3, 5, 7, ...
param1
與方法有關的引數。對方法 cv_adaptive_thresh_mean_c 和 cv_adaptive_thresh_gaussian_c, 它是乙個從均值或加權均值提取的常數(見討論), 儘管它可以是負數。
函式 cvadaptivethreshold 將灰度影象變換到二值影象,採用下面公式:
threshold_type=cv_thresh_binary:其中 ti 是為每乙個象素點單獨計算的閾值dst(x,y) = max_value, if src(x,y)>t(x,y)
0, otherwise
threshold_type=cv_thresh_binary_inv:
dst(x,y) = 0, if src(x,y)>t(x,y)
max_value, otherwise
對方法 cv_adaptive_thresh_mean_c,先求出塊中的均值,再減掉param1。
對方法 cv_adaptive_thresh_gaussian_c ,先求出塊中的加權和(gaussian), 再減掉param1。
下面的例題對閾值化和自適應閾值化進行了比較:
#include "stdafx.h" #include #include #include iplimage* igray = 0; iplimage* it = 0; iplimage* iat; void main()
運算結果為:
1.學習opencv,於仕祺,劉瑞禎,清華大學出版社,pp.159-161
2.3.
OpenCV學習筆記 自適應閾值化
自適應閾值化的函式為 自適應閾值方法 void cvadaptivethreshold const cvarr src,cvarr dst,double max value,int adaptive method cv adaptive thresh mean c,int threshold typ...
OpenCV自適應閾值處理
區域性自適應閾值則是根據畫素的鄰域塊的畫素值分布來確定該畫素位置上的二值化閾值。這樣做的好處在於每個畫素位置處的二值化閾值不是固定不變的,而是由其周圍鄰域畫素的分布來決定的。亮度較高的影象區域的二值化閾值通常會較高,而亮度較低的影象區域的二值化閾值則會相適應地變小。不同亮度 對比度 紋理的區域性影象...
OpenCV 閾值處理 二 自適應閾值
因此在同一副影象上的不同區域採用的是不同的閾值,從而使我們能在亮度不同的情況下得到更好的結果。自適應閾值函式 dst cv.adaptivethreshold src,maxvalue,adaptivemethod,thresholdtype,blocksize,c dst 引數 src 8位單通道...