イメージをセグメント化し、セグメント化されたイメージの周りにバウンディング ボックスを配置する Matlab プログラムを作成しています。私のコードは以前は機能していましたが、現在エラーが発生しています:
- 長方形の使用エラー
- 値は 4 要素ベクトルでなければなりません
問題の配列は、regionprops によって作成された BoundingBox であり、 4 つの要素のみを含む必要がありますが、何らかの理由でより多くの要素が含まれています。これが私のコードです(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;
(実際には、コードをサブプロットするのではなく、画像にバウンディング ボックスを直接配置できる方が望ましいと思いますが、ビジョン ツールボックスを使用せずにそれを行う方法が見つかりませんでした)
ありがとう!