Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 为什么《不真实》会产生嘈杂的情节?_Matlab_Image Processing - Fatal编程技术网

Matlab 为什么《不真实》会产生嘈杂的情节?

Matlab 为什么《不真实》会产生嘈杂的情节?,matlab,image-processing,Matlab,Image Processing,我在这个链接上有图片: 我正在尝试使用unprofile 我运行了invrofile(Ic,xc,yc,50)使用yc=[20 140]。我使用的链接中的第二个图像是xc=[20 30],第三个图像是xc=[20 80] 这对我来说没有意义,因为当您增大xc的大小时,我希望绘图更接近平滑绘图(例如链接中的第四幅图像)。因为我认为如果你增加x的宽度,那么y的给定值应该会有更少的噪声。例如,如果在y=20,x=20将为I在y=20处产生1个值。但是如果你在y=20处展开x,这样就有x=20,21,2

我在这个链接上有图片:

我正在尝试使用
unprofile

我运行了
invrofile(Ic,xc,yc,50)使用
yc=[20 140]
。我使用的链接中的第二个图像是
xc=[20 30]
,第三个图像是
xc=[20 80]

这对我来说没有意义,因为当您增大
xc
的大小时,我希望绘图更接近平滑绘图(例如链接中的第四幅图像)。因为我认为如果你增加
x
的宽度,那么
y
的给定值应该会有更少的噪声。例如,如果在
y=20
x=20
将为
I
y=20
处产生1个值。但是如果你在
y=20
处展开
x
,这样就有
x=20,21,22,23,24
,那么在给定的
y=20
处会有5个
I
值,所以
I
y=20
处的报告值将是这5个
I
值的平均值,对吗


除了模糊图像之外,难道没有办法让
取消配置文件
生成更平滑的打印吗?

如果您对要施加在轮廓上的平滑度约束有一些了解,那么一件简单的事情就是对轮廓进行后期处理

例如:

p = improfile(Ic, xc, yc, 50);
pnew = conv(p,ones(1,9)/9,'valid');

在这里,我们只是沿着轮廓应用一个理想的低通平均滤波器,并丢弃轮廓中的第一个和最后4个点。您可以根据需要过滤p。

取消配置文件
返回图像在起点和终点之间等间距点处的值。在您的例子中,
start=[xc(1),yc(1)]
,和
end=[xc(2),yc(2)]

我认为你想做的是:

mean(Ic(yc(1):yc(2),xc(1):xc(2)),2)
在那里,我从图像中提取一个矩形区域,并沿x轴平均。这给了我一个类似于你的情节,但更流畅。并且
xc(2)
越大,它变得越平滑:

(蓝色:
xc=[20,30]
,红色:
xc=[20,80]



另一种方法是在垂直于要提取的轮廓的方向上平滑图像。如果要提取的纵断面是水平或垂直的(如仅沿行或列进行简单的卷积),这很容易,但需要对其他方向的纵断面进行专门的过滤器。

这确实会产生更平滑的绘图。然而,
x=[20 80]
仍然没有明显比
x=[20 30]
平滑: