adaptiveThreshold函数
生活随笔
收集整理的這篇文章主要介紹了
adaptiveThreshold函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
adaptiveThreshold函數
函數作用:
運用自適應閾值分割對圖像進行處理
函數調用形式:
C++:?void?adaptiveThreshold(InputArray?src, OutputArray?dst, doublemaxValue, int?adaptiveMethod, int?thresholdType, int?blockSize, double?C)
- CV_THRESH_BINARY,
- CV_THRESH_BINARY_INV
函數 cvAdaptiveThreshold 將灰度圖像變換到二值圖像,采用下面公式:
threshold_type=CV_THRESH_BINARY: dst(x,y) = max_value, if src(x,y)>T(x,y)0, otherwisethreshold_type=CV_THRESH_BINARY_INV: dst(x,y) = 0, if src(x,y)>T(x,y)max_value, otherwise其中 TI 是為每一個象素點單獨計算的閾值
對方法 CV_ADAPTIVE_THRESH_MEAN_C,先求出塊中的均值,再減掉param1。
對方法 CV_ADAPTIVE_THRESH_GAUSSIAN_C ,先求出塊中的加權和(gaussian), 再減掉param1。
opencv代碼: #include "StdAfx.h" #include <cv.h> #include <highgui.h> #include <math.h> IplImage* Igray = 0; IplImage* It = 0; IplImage* Iat; void main() { Igray = cvLoadImage("lena.png", CV_LOAD_IMAGE_GRAYSCALE); It = cvCreateImage(cvSize(Igray->width, Igray->height),IPL_DEPTH_8U, 1); Iat = cvCreateImage(cvSize(Igray->width, Igray->height),IPL_DEPTH_8U, 1); cvThreshold(Igray, It, 150, 255,CV_THRESH_BINARY); cvAdaptiveThreshold(Igray, Iat, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 3, 5); cvNamedWindow("orignal", 1); cvNamedWindow("threshold", 1); cvNamedWindow("adaptiveThresh", 1); cvShowImage("orignal", Igray); cvShowImage("threshold", It); cvShowImage("adaptiveThresh", Iat); cvWaitKey(0); cvReleaseImage(&Igray); cvReleaseImage(&It); cvReleaseImage(&Iat); cvDestroyWindow("orignal"); cvDestroyWindow("threshold"); cvDestroyWindow("adaptiveThresh"); }總結
以上是生活随笔為你收集整理的adaptiveThreshold函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: warpAffine函数
- 下一篇: threshold函数