Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Peak Analysis in the Radon Transform

57 views
Skip to first unread message

Thomas Britton

unread,
Apr 24, 2010, 4:03:05 AM4/24/10
to
I'm trying to detect the peaks located in a radon transform of my image.

An example transform is located here:

http://drop.io/radontb19

The transform has been made of a circular image and cropped in rho accordingly. I've normalised the 'background' of the radon (probably due to image vignetting/source brightness effects).

The peaks themselves consist of wide bands in theta and typically dark-light-dark of varying gradient in rho.

The commercial packages in my field (and supporting literature) use a 'butterfly convolution mask' of varying sizes (a '9x9' mask seems to work well). I've found the conv2 function and have managed to apply a simple 3x3 mask, using components I found in a paper. From what I gather - a mask effectively 'averages' each pixel based upon its neighbours and thus the coefficients from the matrix. However I'm not sure the best mask design for these features and would appreciate some help.

Once I've applied the mask, which hopefully should enhance the peak/trough structure - what sort of peak searching algorithms are out there? As all my peaks will have this characteristic structure in the rho direction (of varying widths unfortunately) I'd like something a bit more general than a max/min search or raw thresholding (as the intensity of the peaks will vary from transform to transform).

Thanks for your help and time,
Ben
p.s. What are the two periodic artefacts at 45 and 135 degrees and how can I reduce them? (I expect this is a sampling defect but am not sure)

Thomas Britton

unread,
Apr 25, 2010, 5:55:05 AM4/25/10
to
So I've managed to get a bit further in understanding what the mask should be doing. The use of a 'butterfly' structure (which is similar to the radon transform of a white line surrounded by two black ones) but I can't work out how to optimise it to reveal the greatest contrast nor can I work out an appropriate 2d peak/trough searching algorithm (that won't seek too many noise related features rather than structural peaks).

Any suggestions?

Thanks,
Ben

"Thomas Britton" <benjamin...@materials.ox.ac.remove.uk> wrote in message <hqu8jp$1ro$1...@fred.mathworks.com>...

Thomas Britton

unread,
Apr 26, 2010, 5:19:05 AM4/26/10
to
Lets see if anyone bites...

Code so far:

%load the data
radondata=imread('radon1.tif');

%create the mask
mask=[-2,-1,-2;
1,2,1;
-2,-1,-2]
%convolute
radondata_masked=conv2(radondata,mask);

%clean up the edge effects due to bleed from non existant data with a mask
radondata_masked(:,end-size(mask,2):end)=NaN;
radondata_masked(:,1:size(mask,2))=NaN;
radondata_masked(end-size(mask,1):end,:)=NaN;
radondata_masked(1:size(mask,1),:)=NaN;

%calculate the gradient functions, useful as a 1st assessment of the 'peak height'
[~,ygrid_radon]=gradient(radondata);
[~,ygrid_masked]=gradient(radondata_masked);

%plot the figure
figure;
axis1=subplot(2,2,1,'Parent',axis1);
imagesc(radondata);axis image; axis ij; colormap('gray');colorbar;
axis2=subplot(2,2,3);axis image; axis ij; colormap('gray');colorbar;
imagesc(radondata_masked,'Parent',axis2);
axis3=subplot(2,2,2);axis image; axis ij; colormap('gray');colorbar;
imagesc(ygrid_radon,'Parent',axis3);
axis4=subplot(2,2,4);
imagesc(ygrid_radon,'Parent',axis4);axis image; axis ij; colormap('gray');colorbar;

--

This mask blurs some of the defects found at 45 and 135 degrees. It also smooths out some of the background striations which you find from the radon transform. However you could equally do this smoothing with a ones(3) mask. I'm really looking for some method to improve contrast from the peaks (e.g. the one found at (4,50) ) while smoothing out the background.

Thanks,
Ben

"Thomas Britton" <benjamin...@materials.ox.ac.remove.uk> wrote in message <hr13hp$fqr$1...@fred.mathworks.com>...

0 new messages