An example transform is located here:
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)
Any suggestions?
Thanks,
Ben
"Thomas Britton" <benjamin...@materials.ox.ac.remove.uk> wrote in message <hqu8jp$1ro$1...@fred.mathworks.com>...
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>...