ITK基礎 一 二值化分割

2022-06-13 19:30:12 字數 1181 閱讀 4179

itk 全稱為 insight toolkit ,是一款開源、跨平台、用於影象分析工具包,開發遵循極限程式設計,主流使用語言為 c++,但目前開發團隊已經提供了面向 python 的介面。

itk 內部封裝了許多優秀演算法。itk 可用於影象處理、配準、分割等領域,處理影象維度面向二維、三維或者更高維度

原理講解

itk 中的二值化分割主要用到 itk::binarythresholdimagefilter 過濾器,其分割原理圖如下:

二值化分割是分割方法中最基礎的,通過定義 lower 和 upper 兩個畫素臨界點

\[p = \left\

inside value & &\\

outside value & & \\

\end

\right.

\]只要影象畫素值在者之間,則該畫素值將改編為 insidevalue;否則將改為 outsidevalue;最終影象的畫素值只有兩種:insidevalue 或者是 outsidevalue;

注:上面的 insidevalue、outsidevalue、lowervalue、uppervalue 四個引數是使用者自己設定的。

**實現

上文已經提到了,二值化分割主要用到的標頭檔案為 itkbinarythresholdimagefilter ,該過濾器主要通過設定四個引數來完成分割效果。

下面的**部分就是關於二值分割的功能實現,**中,依次進行影象讀取、引數設定、二值化處理、影象寫出等一系列步驟

#include#include#include#include#include#includeusing namespace std;

int binary_threshold()

catch(exception &e)

return exit_success;

}

這裡 insidevalue 設定為 0 (黑色),outsidevalue 設定為 255(白色);閾值分割區間設為 (150,180 );選取的分割影象為 itk 官方提供的腦部切片 png ,最終的分割結果如下

CABAC基礎一 二值化

在hevc中主要包括截斷萊斯編碼 truncated rice 指數哥倫布編碼 exp golomb 和定長編碼。tr二值化需要輸入三個引數 synval表示將要進行tr二值化的值,criceparam表示萊斯引數,cmax表示門限值。tr二值化的結果由兩部分組成 字首prefixval是一元碼,字...

OpenCV OTSU二值化分割

其實opencv中內建了這個二值化演算法,在threshold方法中 double threshold inputarray src,outputarray dst,double thresh,double maxval,int type 閾值型別有如下幾種 0 二進位制閾值化 thresh bin...

幾何模板總結(一) 二維基礎

實數比較 const double eps 1e 8 int dcmp double x 點積 double length point a 向量的長度 double angle point a,point b 兩向量的夾角叉積 cross u,v 為兩向量組成的三角形的有向面積的2倍 double ...