MATLAB中的背景提取

问题描述 投票:0回答:1

我正在研究MATLAB中的一个项目,它将从图像中提取背景,就像这是一个图像

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

1)使用canny的边缘

2)连接组件

它上面有详细的工作,算法或论文吗?所以我可以做到。

编辑

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

image matlab image-processing edge-detection
1个回答
1
投票

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

假设您可以使用以下值创建矩阵:

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

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

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

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

如果一个像素在边缘内部足够远(更简单:足够接近它们的中心),不要认为它是背景的候选者。这应该有助于万一有蓝眼睛的人。

© www.soinside.com 2019 - 2024. All rights reserved.