【发布时间】:2013-01-05 01:10:54
【问题描述】:
我正在编写一个 Matlab 程序来分割图像,然后在分割后的图像周围放置一个边界框。我的代码以前可以运行,但现在出现错误:
- 使用矩形时出错
- 值必须是 4 元素向量
有问题的数组是由 regionprops 创建的 BoundingBox,应该只包含四个元素,但由于某种原因包含更多元素。这是我的代码(defaultSegment 函数返回二进制图像):
function [ boundImage ] = boundSegment( input_image )
image = defaultSegment(input_image);
clear s;
s = regionprops(image, 'Area', 'BoundingBox');
numObj = numel(s);
index = 1;
for k = 1: numObj-1
if s(k+1).Area > s(index).Area
index = k+1;
else
index = index;
end
end
figure, imshow(input_image);
rectangle('Position',s(index).BoundingBox);
boundImage = null;
(如果我的代码可以直接将边界框放在图像上而不是对其进行子图绘制,我会更喜欢,但我还没有找到没有视觉工具箱的方法)
谢谢!
【问题讨论】:
-
您是否检查了
s(index).BoundingBox的值以确保其为4 element vector? -
也许我不清楚。 s(index).BoundingBox 没有给出 4 元素向量,但我不知道为什么会这样。
-
查看此链接以了解如何获取段的大小并设置边界框mathworks.com/matlabcentral/fileexchange/25157 您必须下载一个 matlab 文件
-
那个链接没有帮助。
标签: matlab bounding-box image-segmentation