Cylindrical to rectangular correction in image processing
2 次查看(过去 30 天)
显示 更早的评论
Dear All;
if have an image for cylindrical object ( say pipe). when take the image of the pipe it will project as rectangular image ,which may lead to projection error, how i can compensate for that.\
Best Regards;
0 个评论
回答(1 个)
Adam Wyatt
2015-3-31
编辑:Adam Wyatt
2015-3-31
Create projected co-ordinates of original image
[Ny, Nx] = size(Img);
x = (1:Nx).';
y = (1:Ny).';
Create original co-ordinates of orignal image (you need to know the transfer function - you probably want to look up Mercator projection
[x1, y1] = MyCoordinateTransferFunction(x, y);
Create new co-ordinates on uniform grid
x2 = linspace(min(x1), max(x1), Nx).';
y2 = linspace(min(y1), max(y1), Ny).';
Interpolate image on new uniform grid
Img2 = interp2(x1.', y1, Img, x2.', y2, 'spline');
Note that I've defined the vectors as columns, so had to transpose the x-coordinates. Also, I've used spline interpolation - you could use linear or nearest if your want better speed but lower accuracy. Check the documentation.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Read, Write, and Modify Image 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!