
二值化
二值化就是将圖像上的像素點的灰階值設定為0或255,通過一個門檻值來判斷,假設像素的值大于100設為255,小于100設為0便是一種政策。
二值化的基于灰階圖去做改變,是以所占用的資料空間較小。同時二值化凸顯出了圖形圖像的輪廓,友善于後續基于圖像的一些算法處理。
OpenCV提供的二值化接口
double threshold( InputArray src, OutputArray dst,
double thresh, double maxval, int type )
參數
- src: 輸入圖像資料
- dst:輸出圖像資料
- thresh:門檻值
- maxval:二值化範圍的像素表示最大值
- type:二值化的類型
例:threshold(gray, bin, 100, 255, THRESH_BINARY);
代碼示例
int main(int argc, char *argv[])
{
Mat src = imread("3.jpg");
Mat gray;
Mat bin;
Mat ibin;
cvtColor(src, gray, COLOR_BGR2GRAY);
//二進制門檻值化
threshold(gray, bin, 100, 255, THRESH_BINARY);
//反二進制門檻值化
threshold(gray, ibin, 100, 255, THRESH_BINARY_INV);
namedWindow("src");
namedWindow("bin");
namedWindow("ibin");
imshow("src", src);
imshow("bin", bin);
imshow("ibin", ibin);
waitKey(0);
return 0;
}
複制
效果圖要仔細看哦