From: Tingting on
hi all,

i'm looking for help about image restoration. I used a lidar camera to get a 3d point cloud data, and then project the data to a 2d image. but because the 3d point cloud data is not uniform and the camera didn't scan everywhere, even at low resolution, some pixels have no information. in this case, how can i get a complete image? thanks a lot!
From: ImageAnalyst on
On Jul 2, 4:24 am, "Tingting " <joyce....(a)hotmail.com> wrote:
> hi all,
>
> i'm looking for help about image restoration. I used a lidar camera to get a 3d point cloud data, and then project the data to a 2d image. but because the 3d point cloud data is not uniform and the camera didn't scan everywhere, even at low resolution, some pixels have no information. in this case, how can i get a complete image? thanks a lot!

---------------------------------------------------------------------------------
You might try ust projecting along one dimension to get a 2D image,
then use interp2() or kriging (http://en.wikipedia.org/wiki/Kriging)
to fill in the "missing" pixels.
From: Tingting on
ImageAnalyst <imageanalyst(a)mailinator.com> wrote in message <5266631c-1059-4668-9fd8-d6634ca46c20(a)18g2000vbh.googlegroups.com>...
> On Jul 2, 4:24 am, "Tingting " <joyce....(a)hotmail.com> wrote:
> > hi all,
> >
> > i'm looking for help about image restoration. I used a lidar camera to get a 3d point cloud data, and then project the data to a 2d image. but because the 3d point cloud data is not uniform and the camera didn't scan everywhere, even at low resolution, some pixels have no information. in this case, how can i get a complete image? thanks a lot!
>
> ---------------------------------------------------------------------------------
> You might try ust projecting along one dimension to get a 2D image,
> then use interp2() or kriging (http://en.wikipedia.org/wiki/Kriging)
> to fill in the "missing" pixels.


thanks, but i tried interp2(), it doesn't work. i got a 64*256 image after projection, and i use interp2() to get a 128*256 image, the missing pixel was still there.
the code is as following:
new_wid = Width_res;
new_hgt = Height_res*2;
[Xis,Yis] = meshgrid(1:new_wid,1:0.5:new_hgt+0.5);
Image_new = interp2(Image,Xis,Yis);

is it wrong?
From: ImageAnalyst on
Doesn't look right to me. Look at their example:

[X,Y] = meshgrid(-3:.25:3);
Z = peaks(X,Y);
[XI,YI] = meshgrid(-3:.125:3);
ZI = interp2(X,Y,Z,XI,YI);
mesh(X,Y,Z), hold, mesh(XI,YI,ZI+15)
hold off
axis([-3 3 -3 3 -5 20])

Do they pass in an image to interp2()? No -- they pass in the x,y
coordinates of the pixels that are "present" along with the intensity
values (what they're calling Z) of those particular pixels, and the
coordinates where you want values (their XI and YI is your Xis and
Yis). Give it a try that way.