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

2021-10-02 09:43:41 字數 2035 閱讀 4220

為了從一副影象中提取出我們需要的部分,應該用影象中的每乙個畫素點的灰度值與選取的閾值進行比較,並作出相應的判斷。(注意:閾值的選取依賴於具體的問題。即:物體在不同的影象中有可能會有不同的灰度值。)

opencv中提供了閾值函式:threshold()函式。函式作用:根據閾值和所選擇的閾值化型別,將閾值上下的畫素值分別置0或255實現二值化的效果。

函式原型: void threshold(inputarray src,outputarray dst,double thresh,double maxval,int type)

引數說明

src:輸入的源影象

dst:輸出影象

thresh:閾值的大小

maxval:第五個引數的最大值

type:閾值化型別,可填入數字1~5.不同數字對應的閾值化型別:

在運用該閾值型別的時候,先要選定乙個特定的閾值量,比如:125,這樣,新的閾值產生規則可以解釋為大於125的畫素點的灰度值設定為最大值(如8位灰度值最大為255),灰度值小於125的畫素點的灰度值設定為0。

相當於第乙個閾值化型別的取反。

同樣首先需要選定乙個閾值,影象中大於該閾值的畫素點被設定為該閾值,小於該閾值的保持不變。(例如:閾值選取為125,那小於125的閾值不改變,大於125的灰度值(230)的畫素點就設定為該閾值)。

先選定乙個閾值,然後對影象做如下處理:1 畫素點的灰度值大於該閾值的不進行任何改變;2 畫素點的灰度值小於該閾值的,其灰度值全部變為0。

與第四個閾值化型別判斷的情況相反。

實現**

#include #include#include #include using namespace cv;

mat src, gray_src, dst;

int threshold_value = 127;

int threshold_max = 255;

int type_value = 1;

int type_max = 4;

const char* output_title = "binary image";

void threshold_demo(int, void*);

int main(int argc, char** ar**)

void threshold_demo(int, void*)

效果如下:

Opencv學習筆記 4 基本閾值操作

閾值是什麼?簡單點說是把影象分割的標尺,這個標尺是根據什麼產生的,閾值產生演算法?閾值型別。binary segmentation 1.閾值二值化 threshold binary 左下方的圖表示影象畫素點src x,y 值分布情況,藍色水平線表示閾值 2.閾值反二值化 threshold bina...

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...

1 10opencv學習筆記之基本閾值操作

一.影象閾值 threshold 的概念 閾值 是什麼?簡單點說是把影象分割的標尺,這個標尺是根據什麼產生的,閾值產生演算法?閾值型別 二.型別 1.閾值二值化 threshold binary 左下方的圖表示影象畫素點src x,y 值分布情況,藍色水平線表示閾值。2.閾值反二值化 thresho...