Enhance image by simple interpolation using matlab
我正在进行断层扫描,并试图提高数据质量。您可以在此处查看原始数据:http://i.imgur.com/270HT.png。
我要做的是沿X方向平滑图像。基本上拉伸图像并在离散跳转之间插入数据。
我对图像处理了解不多,但是用肉眼我可以看到内置的
有人可以帮我如何增强它吗?
我不确定这里是否有常用的插值方法。您的图片似乎是通过单独的列测量创建的。如果查看数据,似乎相邻的列几乎是彼此的副本。他们似乎只是翻译。如果您将两个相邻列的亮度进行绘制并绘制,则会看到
对于两个峰值,它们在您的图像中是类似血管的结构,看来确实如此。
那么如何计算两个相邻列的相关性以获得offset
呢?
您会看到,如果将两列移动了几个像素,则它们之间的相关性最高。
所以这是我首先要尝试的。计算每个相邻列的偏移量。您将获得一个偏移量列表,该列表告诉您必须转换多少行才能使其与相邻行最匹配。然后,您可以平滑此列表,并使用平滑后的版本来翻译每一列。
这应该修复原始图像中x = 7处的列。
此外,您当然可以通过插值此偏移列表在x方向上拉伸图像。假设您有10个相邻的列及其偏移量,它们在此位置最匹配。
然后,您可以通过在同一行使用不同的翻译来使用中间步骤。这样,您将可以在列之间轻松过渡,并可以调整x方向的大小。
编辑
此
Then you smooth this list and use the smoothed version to translate every column. This should repair columns like the one at x=7 in your raw image.
需要澄清。当有了偏移量列表时,要用于转换每一列的就是该列表与其平滑版本之间的差异。我希望我在这里,因为我没有尝试过。
您可以使用不同的imresize样式->例如,将\\'lanczos3 \\'用作可选参数。 (请参阅本手册)。
如果您更喜欢,也可以尝试在调整大小后锐化图像。
但是,您永远无法获得真正好的结果,因为插值始终是无处不在的数据创建。