MATLAB Answers

0

Creating Gibbs Ringing by changing tissue intensity

Luke Dineen-Woolnough さんによって質問されました 2016 年 2 月 2 日
最新アクティビティ Image Analyst
さんによって 回答されました 2016 年 2 月 3 日
I'm trying to simulate the MRI Process, part of this requires me to simulate gibbs ringing in an image. I'm trying to increase the intensity of one tissue so it is very high compared with the other, with the hope that when i FFT the image it will produce ringing artifacts. I'm having difficulty trying too extract one range of pixels The image only has 3 intensity values, 46, 70 and 0. I want to increase all pixels with a value of 70 to 255. Can anyone suggest how i do this?

  0 件のコメント

サインイン to comment.

2 件の回答

David Young
回答者: David Young
2016 年 2 月 3 日

I guess you haven't had an answer yet because "Gibbs Ringing" is quite a technical and specialised area. However, the substance of your question has a very simple answer.
If your image array is img, then you can make a new array that is the same apart from having every value exactly equal to 70 changed to 255 like this:
img_new = img;
img_new(img == 70) = 255;
A couple of extra points, if I may.
  • It's a bit surprising that you are asking a very elementary programming question when you are hoping to do something as potentially complex as simulate MRI. You may need to do a crash course on programming in MATLAB if you're going to make progress at all. There are lots of resources - search Answers for how to get started in MATLAB for image processing.
  • Increasing the size of the contrast won't create Gibbs artefacts if they weren't there previously, though it might possibly make them more visible in the result. More important is to think about whether you need any frequency-domain operations to make this phenomenon significant.

  0 件のコメント

サインイン to comment.


Image Analyst
回答者: Image Analyst
2016 年 2 月 3 日

Maybe try boosting the high frequency content of the original gray scale image by doing a convolution. Make a Laplacian and amplify it and add it to the original, something like
kernel = [-1,-1,-1; -1,17,-1; -1,-1,-1];
outputImage = conv2(grayImage, kernel, 'same');
You can change the weights and kernel window size to achieve different effects. Generally for producing ringing you'll want a positive central weight and negative surrounding weights.

  0 件のコメント

サインイン to comment.



Translated by