Crop out unwanted part from an image.
2 ビュー (過去 30 日間)
古いコメントを表示
Dear friends, I want to crop out extra part of CT Head image. I mean i want my image should have only required part of the image by removing unwanted black background.
1 件のコメント
Sven
2011 年 11 月 15 日
So you have a single 2D image?
Let's say you want to remove the top and bottom 5 rows and the first 10 columns:
originalIm = rand(512,512);
croppedIm = originalIm(6:end-5, 11:end);
If this *doesn't* answer your question, please realise that you need to make your question more specific.
回答 (2 件)
Walter Roberson
2011 年 11 月 15 日
Threshold the image so that the "black" background values are assigned 0. Suppose we refer to that result as ImThr . Then
foregroundcol = any(ImThr);
firstforegroundcol = find(foregroundcol, 1);
lastforegroundcol = find(foregroundcol, 1, 'last');
foregroundrow = any(ImThr,2);
firstforegroundrow = find(foregroundrow, 1);
lastforegroundrow = find(foregroundrow, 1, 'last');
And then we can extract the foreground from the frame:
foregroundImg = OriginalImg(firstforegroundrow:lastforegroundrow, firstforegroundcol:lastforegroundcol);
Note that this construction assumes there is no outline or annotations around the image, just image.
0 件のコメント
Image Analyst
2011 年 11 月 15 日
It does exactly this with the standard coins image, assuming you can determine foreground and background solely by intensity thresholding.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Get Started with MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!