【发布时间】:2014-03-28 06:44:02
【问题描述】:
我有一个图像(逻辑值),像这样
我需要将此图像从像素重新采样到毫米或厘米;这是我用来重采样的代码:
function [ Ires ] = imresample3( I, pixDim )
[r,c]=size(I);
x=1:1:c;
y=1:1:r;
[X,Y]=meshgrid(x,y);
rn=r*pixDim;
cn=c*pixDim;
xNew=1:pixDim:cn;
yNew=1:pixDim:rn;
[Xnew,Ynew]=meshgrid(xNew,yNew);
Id=double(I);
Ires=interp2(X,Y,Id,Xnew,Ynew);
end
我得到的是黑色图像。我怀疑这段代码做了一些我没有想到的事情:它似乎只占据了图像的左上角。
相反,我想要的是在毫米/厘米尺度上拥有相同的图像:我期望每个白色像素都应该从原始位置映射到新位置(以毫米/厘米为单位);发生的事情肯定不是我所期望的。
我不确定interp2 是正确的命令。
我不想调整图像大小,我只想从像素世界转到毫米/厘米世界。
pixDim当然是图像像素的尺寸,用耳朵的高度(厘米)除以耳朵的高度(毫米)(平均为0.019厘米)。
有什么想法吗?
编辑:我很确定代码没有意义,但有人告诉我这样做......无论如何,如果我有两个边缘耳朵,我需要先缩放两个真实尺寸,然后执行一些对它们进行操作。我所说的“真实尺寸”的意思是,如果一个尺寸为 6.5x3.5cm,另一个尺寸为 6x3.2cm,我需要在这个尺寸上执行操作。 在进行操作之前,我不知道如何从像素尺寸移动到厘米尺寸。 我想从一个世界移动到另一个世界,因为我想摆脱捕捉距离(因为我想如果一张耳朵的照片是近拍的,另一张是远拍的,它们的像素尺寸应该不同) . 我对么?有办法吗?我以为我可以绘制耳朵缩放轴,但我想我不能从另一个减去一个,对吧?
【问题讨论】:
-
这毫无意义——要么你想调整图像大小,要么你不想。无论哪种方式,只需在图像坐标中进行计算,然后使用毫米/像素比例因子来转换 结果。
-
跑题了,但是用你的图片做了一些有用的工作,至少看起来是这样。这是 - stackoverflow.com/questions/22009416/…
-
@Divakar 这不是我想要的,但确实很有用,谢谢。
-
@lupin_85 这就是为什么我说它跑题了。
标签: image matlab pixel resampling