1、边 缘 检 测图 像 边 缘 检 测 大 幅 度 地 减 少 了 数 据 量 , 并 且 剔 除 了 可 以 认 为 不 相 关 的 信 息 , 保 留 了图 像 重 要 的 结 构 属 性 。 有 许 多 方 法 用 于 边 缘 检 测 , 它 们 的 绝 大 部 分 可 以 划 分 为 两 类 : 基于 查 找 一 类 和 基 于 零 穿 越 的 一 类 。 基 于 查 找 的 方 法 通 过 寻 找 图 像 一 阶 导 数 中 的 最 大 和 最小 值 来 检 测 边 界 , 通 常 是 将 边 界 定 位 在 梯 度 最 大 的 方 向 。 基 于 零 穿 越 的 方 法 通 过 寻
2、找 图像 二 阶 导 数 零 穿 越 来 寻 找 边 界 , 通 常 是 Laplacian 过 零 点 或 者 非 线 性 差 分 表 示 的 过 零点 。有 许 多 用 于 边 缘 检 测 的 方 法 , 他 们 大 致 可 分 为 两 类 : 基 于 搜 索 和 基 于 零 交 叉 。 基于 搜 索 的 边 缘 检 测 方 法 首 先 计 算 边 缘 强 度 , 通 常 用 一 阶 导 数 表 示 , 例 如 梯 度 模 ,然 后 , 用 计 算 估 计 边 缘 的 局 部 方 向 , 通 常 采 用 梯 度 的 方 向 , 并 利 用 此 方 向 找 到 局 部梯 度 模 的 最 大
3、值 。 基 于 零 交 叉 的 方 法 找 到 由 图 像 得 到 的 二 阶 导 数 的 零 交 叉 点 来 定 位 边缘 。 通 常 用 拉 普 拉 斯 算 子 或 非 线 性 微 分 方 程 的 零 交 叉 点 。 滤 波 做 为 边 缘 检 测 的 预 处 理 通 常 是 必 要 的 , 通 常 采 用 高 斯 滤 波 。 已 发 表 的 边 缘 检测 方 法 应 用 计 算 边 界 强 度 的 度 量 , 这 与 平 滑 滤 波 有 本 质 的 不 同 。 正 如 许 多 边 缘 检 测方 法 依 赖 于 图 像 梯 度 的 计 算 , 他 们 用 不 同 种 类 的 滤 波 器 来
4、 估 计 x-方 向 和 y-方 向 的 梯度 。 一 旦 我 们 计 算 出 导 数 之 后 , 下 一 步 要 做 的 就 是 给 出 一 个 阈 值 来 确 定 哪 里 是 边 缘 位 置 。阈 值 越 低 , 能 够 检 测 出 的 边 线 越 多 , 结 果 也 就 越 容 易 受 到 图 片 噪 声 的 影 响 , 并 且 越 容 易从 图 像 中 挑 出 不 相 关 的 特 性 。 与 此 相 反 , 一 个 高 的 阈 值 将 会 遗 失 细 的 或 者 短 的 线 段 。 一个 常 用 的 这 种 方 法 是 带 有 滞 后 作 用 的 阈 值 选 择 。 这 个 方 法 使
5、 用 不 同 的 阈 值 去 寻 找 边 缘 。首 先 使 用 一 个 阈 值 上 限 去 寻 找 边 线 开 始 的 地 方 。 一 旦 找 到 了 一 个 开 始 点 , 我 们 在 图 像 上逐 点 跟 踪 边 缘 路 径 , 当 大 于 门 槛 下 限 时 一 直 纪 录 边 缘 位 置 , 直 到 数 值 小 于 下 限 之 后 才 停止 纪 录 。 这 种 方 法 假 设 边 缘 是 连 续 的 界 线 , 并 且 我 们 能 够 跟 踪 前 面 所 看 到 的 边 缘 的 模 糊部 分 , 而 不 会 将 图 像 中 的 噪 声 点 标 记 为 边 缘 。常 用 的 边 缘 检
6、测 方 法 有 : roberts 算 子 , sobel 算 子 , prewitt 算 子 , LOG 算 子 ,canny 算 子 , 小 波 方 法 。 下 面 是 这 几 个 算 子 的 编 程 实 现 , 用 于 比 较 各 种 算 子 的 效 果 。clear;%装 入 原 图 像 1f1=;f1,p=uigetfile(*.jpg;*.bmp;*.tif;*.gif,打 开 原 始 图 像 文 件 );addpath(p);if f1=0;return;end;I=imread(f1); %把 原 始 图 像 转 换 成 矩 阵save image;load image;fig
7、ure(1);subplot(2,4,1);image(I);axis(square);title(原 始 图 像 );%小 波 函 数type = db1;% 2 维 离 散 小 波 变 换CA1, CH1, CV1, CD1 = dwt2(I,type);I = double( idwt2(CA1, CH1, CV1, CD1, type) );subplot(2,4,2);imshow(I/250);axis(square);I=I/250;title(灰 度 图 像 );%边 缘 检 测a=edge(I,roberts);b=edge(I,sobel);c=edge(I,prewitt
8、);d=edge(I,log);e=edge(I,canny);f=edge(I,canny,(graythresh(I) *.1);%imwrite(a,roberts.tif);%imwrite(b,sobel.tif);%imwrite(c,prewitt.tif);%imwrite(d,log.tif);imwrite(e,canny.tif)subplot(2,4,3);imshow(a);title(roberts 检 测 图 像 );subplot(2,4,4);imshow(b);title(sobel 检 测 图 像 );subplot(2,4,5);imshow(c);title(prewitt 检 测 图 像 );subplot(2,4,6);imshow(d);title(log 检 测 图 像 );subplot(2,4,7);imshow(e)title(canny 检 测 图 像 );subplot(2,4,8);imshow(f);title(小 波 检 测 图 像 );