0

我正在 MATLAB 中开发一个项目,该项目将从图像中提取背景,就像这是一个图像

示例图像

它应该给我背景(蓝色部分)或人像的位置/坐标,到目前为止我已经计算过了

1) 使用精明的边缘

2) 连接组件

有没有详细的工作、算法或论文?所以我可以做到。

编辑

我面临的问题是如果我检测到边缘,它会给我binary图像,所以如果我假设所有具有值0(黑色)的像素都是我的背景,那么我将如何区分I(r,c)是人的一部分还是背景的一部分?

4

1 回答 1

1

请注意,这只是一种方法,但它应该可以工作。

假设您可以制作具有以下值的矩阵:

1 if it is (in the range of) your background color
0 otherwise

并且假设背景只是在人的“外部”(尽管如果背景周围只有一点头发,它可能仍然有效),那么检查某物是否是背景的简单方法是

  1. 观察矩阵中每个像素的邻域
  2. 如果平均值足够高(比如超过 0.2),则假设它是背景像素,否则假设它是非背景像素。
  3. 将结果存储在你的新矩阵中,你就有了背景像素的所有位置

到目前为止,它非常简单,甚至没有使用您已经计算边缘的事实。现在有了这些优势,您可以进行以下改进:

如果一个像素在边缘“内部”足够远(更简单:离边缘中心足够近),则不要将其视为背景的候选者。如果有人有蓝色的大眼睛,这应该会有所帮助。

于 2013-01-18T14:58:34.293 回答