removing flim artifacts from image

I have an MRI image in which it contains artifacts and white labels,kindly tell how to remove these labels and artifacts,I have uploaded the image

3 件のコメント

Matt J
Matt J 2013 年 12 月 24 日
編集済み: Matt J 2013 年 12 月 24 日
I hope the MRI subject gave consent to have his identifying medical information published. Otherwise, HIPAA would probably mandate that you take that image down.
Walter Roberson
Walter Roberson 2013 年 12 月 25 日
I removed the image link pending clarification on this issue.
kash
kash 2013 年 12 月 25 日
Sir there is no other way proceeding this

サインインしてコメントする。

 採用された回答

Image Analyst
Image Analyst 2013 年 12 月 24 日

1 投票

If you want to do it automatically, if you can depend on the white letters and other annotations being 255 or 65535, then you can just erase them
maxValue = max(grayImage(:))); % most likely 255 or 65535 depending on 8 or 16 bit.
whiteStuff = grayImage == maxValue;
grayImage(whiteStuff) = 0; % Set white things to black.
Now if there are parts inside the skull that could also be the sam brightness then you'd need to use a different strategy. You'd have to find the background intensity, threshold, and find the largest blob (see my attached demo). Then invert that binary image and mask your original with it.
binaryImage = grayImage > 50; % or whatever value the brightest part of the background has.
binaryImage = imfill(binaryImage, 'holes');
largestBlob = ..... - see my demo
% Now erase
grayImage(~largestBlob) = 0;
This is probably more robust than the first method because it can handle super bright things inside the skull.

14 件のコメント

kash
kash 2013 年 12 月 25 日
I tried ur answer but still i get some white labels(1st menthod).I read the article published which consists of
Step 1: Read the MRI image and store it in a two dimensional matrix.
Step 2: Select the peak threshold value for removing white labels.
Step 3: Set flag value to 255.
Step 4: Select pixels whose intensity value is equal to 255.
Step 5: If the intensity value is 255 then, the flag value is set to zero and thus the labels are removed from MRI.
Step 6: Otherwise skip to the next pixel.
I tried these steps but the threshold differs,can u help me in solving these steps please
Image Analyst
Image Analyst 2013 年 12 月 25 日
It could be because you have a JPG image. If you do some of the letters may be blurred. You might have to drop the threshold. But, like I said, the second method I offered is more robust. What happened when you tried that method?
Can you reupload your image with the "Personally Identifiable Information" removed?
kash
kash 2013 年 12 月 28 日
here is the link to new image
for the second method i could not get the link for demo,can u tell which demo i have to work on
Image Analyst
Image Analyst 2013 年 12 月 28 日
Yes, I think my second method of finding the largest blob would work perfectly. Can you try it? I attached a demo of finding the largest blob for you to review below.
kash
kash 2013 年 12 月 28 日
Thanks finally i got the answer
kash
kash 2013 年 12 月 28 日
One thing it work for one image and not for another Image ,why this occurs
Image Analyst
Image Analyst 2013 年 12 月 28 日
It would not work where the skull is not the largest blob in the image. For example if you have a slice with just the very tip of the skull but have some big text or logo in the image. You can attach the image where it doesn't work and I'll tell you why.
kash
kash 2013 年 12 月 29 日
this is the image
where half part of the image is displayed and other gets deleted with the label
Image Analyst
Image Analyst 2013 年 12 月 29 日
Do you get the head but the M is attached to it because it's touching/connected to it?
kash
kash 2013 年 12 月 29 日
I got the result as
Image Analyst
Image Analyst 2013 年 12 月 29 日
What threshold did you pick? I'd probably pick around 25.
kash
kash 2013 年 12 月 30 日
for each image have i to pick different threshold for each image
Image Analyst
Image Analyst 2013 年 12 月 30 日
Why? Shouldn't the black background have about the same intensity in each image?
kash
kash 2013 年 12 月 31 日
ok thanks you

サインインしてコメントする。

その他の回答 (1 件)

Matt J
Matt J 2013 年 12 月 24 日

0 投票

I think you could just use H=imfreehand(...) to draw an ROI around the anatomy that you want to keep.
Then you can do
mriImage=mriImage.*(~H.createMask);
to get rid of it.

タグ

質問済み:

2013 年 12 月 24 日

コメント済み:

2013 年 12 月 31 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by