为什么我的 improfile 函数的结果在 MATLAB 中返回一个镜像图?
Why is the resultant of my improfile function returning with a mirrored graph in MATLAB?
我目前在 MATLAB 上 运行 improfile
有一条线穿过下图的中心:
这样做之后,我正在使用以下代码绘制结果:
xi = [1 size(d_Img,2) size(d_Img,2) 1];
yi = [ceil(size(d_Img,1)/2), ceil(size(d_Img,1)/2), ceil(size(d_Img,1)/2 ),ceil(size(d_Img,1)/2)];
c_d = improfile(d_Img,xi,yi);
c_c = improfile(c_Img,xi,yi);
c_d = c_d';
c_c = c_c';
size_c = size(c_d);
n = 1:size_c(2);
plot(n,c_d);
剧情如下:
为什么曲线相互镜像?我要求更好地了解 improfile
在 MATLAB
中究竟取得了什么。
improfile
计算类似于 "path integral" 的东西,它为您提供用户指定路径周围的图像强度值。例如,如果您使用:
improfile(img,[1 1],[1 size(img,2)]);
与img(:,1)
相同。这是因为您在 improfile
中使用的路径是从 (1,1)
到 (1,size(img,2))
,即第一行。但是,您绝对可以添加更复杂的路径。
在您的例子中,您将沿着一条由 4 个点定义的路径行驶。要点是,如果我用结果数字代替你的等式:
(1,79)->(134,79)->(134,79)->(1,79)
。因此,看看这个,很明显你的结果应该是镜像的,因为你在一条线上来回积分!
旁注:
你可以做到 plot(c_d);
而忘掉那个 n
我目前在 MATLAB 上 运行 improfile
有一条线穿过下图的中心:
这样做之后,我正在使用以下代码绘制结果:
xi = [1 size(d_Img,2) size(d_Img,2) 1];
yi = [ceil(size(d_Img,1)/2), ceil(size(d_Img,1)/2), ceil(size(d_Img,1)/2 ),ceil(size(d_Img,1)/2)];
c_d = improfile(d_Img,xi,yi);
c_c = improfile(c_Img,xi,yi);
c_d = c_d';
c_c = c_c';
size_c = size(c_d);
n = 1:size_c(2);
plot(n,c_d);
剧情如下:
为什么曲线相互镜像?我要求更好地了解 improfile
在 MATLAB
中究竟取得了什么。
improfile
计算类似于 "path integral" 的东西,它为您提供用户指定路径周围的图像强度值。例如,如果您使用:
improfile(img,[1 1],[1 size(img,2)]);
与img(:,1)
相同。这是因为您在 improfile
中使用的路径是从 (1,1)
到 (1,size(img,2))
,即第一行。但是,您绝对可以添加更复杂的路径。
在您的例子中,您将沿着一条由 4 个点定义的路径行驶。要点是,如果我用结果数字代替你的等式:
(1,79)->(134,79)->(134,79)->(1,79)
。因此,看看这个,很明显你的结果应该是镜像的,因为你在一条线上来回积分!
旁注:
你可以做到 plot(c_d);
而忘掉那个 n