Creating Gibbs Ringing by changing tissue intensity

5 visualizaciones (últimos 30 días)
Luke Dineen-Woolnough
Luke Dineen-Woolnough el 2 de Feb. de 2016
Respondida: Image Analyst el 3 de Feb. de 2016
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?

Respuestas (2)

David Young
David Young el 3 de Feb. de 2016
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.

Image Analyst
Image Analyst el 3 de Feb. de 2016
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.

Categorías

Más información sobre Medical Physics en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by