找到黑色区域包围的图像位置

时间:2011-09-06 16:02:36

标签: matlab

有一个图像,被黑色区域包围,我想找到这个图像的确切位置(被黑色区域包围)。我的意思是这个图像的四个角的坐标。感谢。

2 个答案:

答案 0 :(得分:1)

您可以在图像上应用二阶导数蒙版,然后准确地拾取颜色从黑色到图片内容的点。然后,您可以逐个提取第一行和最后一行和列,并获得坐标。

答案 1 :(得分:0)

如果你在matlab:

掩盖黑色区域。试试:

Image = logical(Image)

或者找到黑色体素的强度(可能为零)并说:

Image = ind2sub(size(Image), find(Image ~= blackPixelIntensity))

一旦你有了图像的二进制非黑色部分(所以只是对象而不是背景),你只想找到每个体素的最小,最大角落。说:

[x y] = ind2sub(size(Image), find(Image ~= 0))
c1 = [min(x) min(y)]
c2 = [max(x) min(y)]
c3 = [max(x) max(y)]
c4 = [min(x) min(y)]

c1,...,c4是你的角落:)

Lemme知道任何语法错误,因为我无法访问matlab atm。

tylerthemiler

编辑:如果您只想要图像的非黑色部分的整个边界,只需执行上面前两行代码中的任何一行,然后说:

Imperim = bwperim(Image)

Edit2:注意Image是2D数组,你可以在jpg中使用你想要加载的任何内容:P