Loading, Processing and Analysing 3-D Images
3 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I have a volumetric 3-D binary Image (only one file in '.tiff') and would like to upload, display and process it in Matlab.
The Image solely contains black (0) and white (1) values - black is background and white pixels grouped together are some objects.
The main goal is to count all of the objects. I tried this using bwconncomp(), which apparently does not work. According to matlab, the total number of objects is 4. However, only the first slice of my 3-D image contains 4 objects and the whole 3-D image contains over a 100.
I loaded the 3-D image using imread(). How do I have to upload the image correctly so that I can see and count all objects in the 3-D space.
I would be very happy to receive a reply.
Thank you,
Anne
0 件のコメント
採用された回答
Image Analyst
2014 年 4 月 7 日
You say you have 4 objects in just the first slice and that there's at least 96 more in the remaining slices. Are you considering each slice to be one separate image? What if you have 20 slices and every single slice has those same blobs as the first slice. Do you have 4 objects, or 80 objects? bwconncomp() will say you have 4 because the objects in adjacent slices are connected to each other. What do you say?
8 件のコメント
その他の回答 (1 件)
S C.Carl
2016 年 1 月 8 日
Hi,
I have a similar problem but could not solve it. I used the following codes to reconstruct a 3D image that includes 2D slices
for slice = 1 : numberOfSlices filename = sprintf('image #%d', slice); fullFileName = fullfile(folder, filename); if exist(fullFileName, 'file) thisSlice = imread(fullFileName); array3d(:,:,slice) = thisSlice; end end
Then, I use imwrite and to obtain a tiff file that includes all 2D slices.
Now, I want to find connected components in the 3D tiff file. But, if I use
imread() function gives only the first slice in the tiff image.
Can you help me to solve this problem ?
1 件のコメント
Image Analyst
2016 年 1 月 9 日
You need to use the TIFF class if you want multi-page Tiff files. Otherwise you'll have to built up your 3D images slice by slice in 3D with a for loop
array3d = zeros(rows, columns, numSlices);
for slice = 1 : numSlices
thisImage = imread(......... % Read in this image file.
array3d(:,:,slice) = thisImage;
end
参考
カテゴリ
Help Center および File Exchange で 3-D Volumetric Image Processing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!