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