上篇切割的特徵是越切越小,這次換個不會變小的方法,當然不同的方法有利有弊,中間取捨,看實際情況。
0.先構建乙個與原始資料同等大小的影象,這個是前提條件
略。。。(不清楚的請轉《itk中的基本影象操作》一文)
1.沿著z軸按照預設範圍切出方盒子(其實隨便xyz那一邊都一樣)
imagetype::sizetype size = input_data->getlargestpossibleregion().getsize();
int min_temp = point_z[2] - min;
int max_temp = point_z[2] + max;
for(int k= min_temp; kgetpixel(point_temp);
output_data->setpixel(point_temp,1);
} }}
思路:構建同等大小的容器,然後將需要的畫素點放進去。
優點:結果影象和原始影象一樣大小,可以直接做數**算
缺點:由於畫素點相等,所以在遍歷時候運算速度受到一定影響
2.切出序列影象的某一層
imagetype::regiontype inputregion = input_data->getlargestpossibleregion();
imagetype::sizetype size = inputregion.getsize();
if (factor_mode == x) }}
else if (factor_mode == y) }}
else if(factor_mode == z)
}}
思路:和1中的方法如出一轍。只是提取了某一層。其實按照這方法,你可以把任何想提取的畫素點放到對應的容器中。比如接下來的3。
3.切出乙個球形(其實隨便什麼形狀)
imagetype::regiontype inputregion = input_data->getlargestpossibleregion();
imagetype::sizetype size = inputregion.getsize();
int radius2=radius*radius;
for(int k=0;ksetpixel(point_temp2,density);
}}
} }}
對比上篇《一》的方法,思路剛好是相反的,《一》中是在原始資料的基礎上,把不需要的刪除,而這篇是從原始資料中把需要的提取出來。還是那句話,方法沒有優劣,選擇要看實際情況。
道生一,一生二,二生三,三生萬物。
人法地,地法天,天法道,道法自然。
**之餘,時刻要提醒自己跳出程式之外,不要太忙,不要把編碼時間安排的太滿,走一走,停一停,回頭看一看,想一想。**擼的再好,始終只是用來餬口的術,用到什麼,就去學什麼好了,隨時拿起,隨時放下。真正需要思考的,是怎麼才能過好這一生,這才是道。
itk中的花式資料切割(五)
今天繼續研究資料切割,也是對之前四篇切割內容的補充,內容不多,step by step。itk中有乙個類叫做itkcropimagefilter,是itkextractimagefilter的派生方法。先上 看一下基本用法 imagetype sizetype extractsize extract...
itk中的Cos變換
itk中有個類叫做itkcosimagefilter,是將影象中每個點做cos變換。可能大家現在還不知道有什麼用,那麼本文只談實現,不談應用場景。使用方法 typedef itk cosimagefilter imagetype,imagetype filtertype filtertype poi...
itk中的黑白TopHat演算法
本文要寫的是tophat演算法,這個演算法屬於形態學變換,主要應用在解決當光照不均等條件引起的背景灰度不均問題 敲黑板,tophat是應用在灰度影象的,不是二值影象!tophat演算法本質是形態學變換中開閉運算的組合。開運算能消除灰度影象中較亮的細節,閉運算則能消除較暗的細節,如果對應到座標系,亮對...