Radon Transform Documentation Matlab

2 次查看(过去 30 天)
Hello,Regards...
I Have a question about the Radon Transform...exactly the way which Matlab explain this graph:
"The algorithm first divides pixels in the image into four subpixels and projects each subpixel separately, as shown in the following figure.Each subpixel's contribution is proportionally split into the two nearest bins, according to the distance between the projected location and the bin centers. If the subpixel projection hits the center point of a bin, the bin on the axes gets the full value of the subpixel, or one-fourth the value of the pixel. If the subpixel projection hits the border between two bins, the subpixel value is split evenly between the bins."
I understand the Radon Transform get the product between the length(intersection) of each beam through the pixel and the pixel value (Proj=Area_intersection*pixel_value)to generate the projection to differentes angles and next the sum of every projection in every pixel (Sum along of one direction=Projection) but I don't understand this part of documentation of matlab....What refer to 4 subpixels? How can I divide 1 pixel into 4 ?? or Do It make reference to the arrounding area of every pixel??
Thank you!

采纳的回答

Image Analyst
Image Analyst 2019-12-2
Think of the Radon transform like an x-ray. It makes a projection along a line. Now the digital image is spatially discrete -- quantized. So what if the projection is at an angle that doesn't line up with pixel rows and columns? What pixels are you going to project? The pixel that should be projected is mathematically at some floating point (x,y) location, and this is not usually exactly on an existing pixel center of your existing spatially discrete image. So to get that pixel you have to do an interpolation to find out what the pixel value should be, if there were a pixel there.

更多回答(1 个)

Matt J
Matt J 2019-12-3
编辑:Matt J 2019-12-3
I understand the Radon Transform get the product between the length(intersection) of each beam through the pixel and the pixel value (Proj=Area_intersection*pixel_value)
So, no, the radon transform is fundamentally a continuous-space operation. It is the integral through the continuous-space object along various lines. There are no "pixels" in a continuous-space operation.
What you have described is one way of discretizing the line integrals done by the radon transform when you have a pixelized object. It is the discretization used, for example, in Siddon's algorithm.
RL Siddon, "Fast calculation of the exact radiological path for a three-dimensional CT array". Med Phys. 2005
However, it is not the only way to discretize the Radon transform and not the method that Matlab's radon() command uses. Essentially, radon uses an approximate forward projection that is the transpose of the backprojection (minus the filtering) done by iradon.
What refer to 4 subpixels? How can I divide 1 pixel into 4 ??
It is not to be done by you. It is done internally by radon(). Basically, radon does a 2x2 upsampling of the input image before doing the forward projection. It is meant simply to get a less coarse forward projection result.
  5 个评论
Priyash Singh
Priyash Singh 2020-7-18
You might see more severe jiggles if you increase the size of the central square.
Matt J
Matt J 2020-7-19
Yes, for example with,
squareWidth = 197;
you will see something much closer to what I originally posted.

请先登录,再进行评论。

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by