【问题标题】:image transformations图像变换
【发布时间】:2023-03-11 09:33:01
【问题描述】:

所以我一直在使用 gnu-gsl 和 CImg 来实现一些用于仿射和度量校正的基本投影空间技术。

我已经完成了仿射校正的计算,但是我很难弄清楚如何将仿射校正矩阵应用于原始(输入)图像。

我目前的想法是遍历输入图像的每个像素坐标。然后将原始像素坐标(转换为齐次坐标)乘以仿射校正矩阵得到输出像素坐标。

然后使用输出像素坐标访问输出图像,并对输出图像的像素位置与原始图像的像素颜色进行混合(加法)操作。

听起来对吗?在将原始像素坐标乘以仿射校正矩阵后,我得到了很多非常奇怪的值。

【问题讨论】:

    标签: image-processing image-manipulation


    【解决方案1】:

    不,你的价值观不应该是奇怪的。何不做一个简单的例子,小规模的小翻译;例如

    x' = 1.01*x + 0.0*y + 5;
    y' = 0.0*x + 0.98*y + 10;
    

    现在 (10,10) 处的像素应该映射到 (15.1,19.8),对吧?

    如果你想制作一个漂亮的输出图像,你应该找到前向投影,然后反向投影到输入图像并在那里进行插值,而不是尝试混合到输出图像中。否则你最终会在输出中出现空白。

    您需要谨慎使用此处的术语;在我看来,你在做投影,有时在计算机图形社区中被称为扭曲。整改是另外一回事,但这取决于你在做什么。

    【讨论】:

    • 我发现我的问题的主要部分与坐标归一化有关。 sigh 有点明显。话虽如此,我注意到我从系统返回的大多数图像坐标都是负值。它们实际上看起来像像素坐标,只是负数。有点奇怪......我想我可以比较一下 gnu-gsl 对 Matlab 所做的事情。至于应用转换,我找到了一些执行矩阵向量乘法(逐元素)的参考代码。这似乎起到了作用。
    • 在我看来,您应该制作一个小的真实示例,其中包含已知的测试数据、已知的参数和已知的结果。然后,在您修复系统时,可以免除坐标归一化、原点位置等问题。
    猜你喜欢
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 2023-03-08
    • 2014-09-25
    • 2019-07-06
    • 2021-11-24
    • 2021-12-29
    • 2012-08-05
    相关资源
    最近更新 更多