线 性 插 值 算 法 实 现 图 像 缩 放 、 旋 转 详 解 这 是 一 篇 关 于 图 形 处 理 线 性 插 值 算 法 细 节 的 文 章 ,转 载 此 文 的 目 的 在 于 能 给 那 些 对 图 像处 理 算 法 感 兴 趣 的 网 友 一 些 启 示 ,对 于 大 量 的 入 门 网 友 来 说 ,这 样 的 文 章 或 许 有 些 让 人 眼 晕 ,但 我 相 信 哪 怕 只 理 解 一 些 表 皮 的 图 像 处 理 算 法 知 识 ,以 后 在 使 用 软 件 处 理 图 片 时 便 能 做 “ 心里 有 数 ” , 还 是 有 所 助 宜 的 。 在 Windows中 做 过 图 像 方 面 程 序 的 人 应 该 都 知 道 Windows的 GDI有 一 个 API函 数 :StretchBlt, 对 应 在 VCL中 是 TCanvas类 的 StretchDraw方 法 。 它 可 以 很 简 单 地 实 现 图 像 的缩 放 操 作 。 但 问 题 是 它 是 用 了 速 度 最 快 , 最 简 单 但 效 果 也 是 最 差 的 “ 最 近 邻 域法 ” , 虽然在大 多数 情况下, 它 也 够用 了 , 但 对 于 要求较高的 情况就不行了 。 不久前做 了 一 个 小玩意儿, 用 于 管理 我 用 DC拍的 一 堆照片 , 其中 有 一 个 插 件 提供了 缩放 功能 , 目 前的 版本就是 用 了 StretchDraw, 有 时 效 果 不能 令人 满意, 我 一 直想加入 两个 更好的 : 线 性 插 值 法 和三次样 条法 。 经过 研究发现 三次样 条法 的 计算 量 实 在 太大 , 不太实 用 ,所 以 决定就只 做 线 性 插 值 法 的 版本了 。 从数 字图 像 处 理 的 基本理 论, 我 们可 以 知 道 : 图 像 的 变形 变换就是 源图 像 到目 标图 像 的坐标变换。简 单 的 想法 就是 把源图 像 的 每个 点坐标通过 变形 运算 转 为目 标图 像 的 相 应 点的 新坐标, 但 是 这 样 会导致一 个 问 题 就是 目 标点的 坐标通常不会是 整数 , 而且像 放 大 操 作 会导致目 标图 像 中 没有 被源图 像 的 点映射到, 这 是 所 谓“ 向前映射” 方 法 的 缺点。 所 以 一 般都 是 采用 “ 逆向映射” 法 。 但 是...