2

真ん中にパターンがあり、その周りに白い領域がある画像があります。余分な不要な白い領域を残して長方形のパターンだけを切り取る、つまり ROI を自動的に選択することを望んでいました。ここで、画像をグレースケールに変換し、find を使用してピクセル値が 255 に等しくないすべてのポイントを見つけることで、これを実行しようとしました。

その後、白以外のピクセルの x と y の最大値と最小値を使用して、imcrop で使用する四角形を定義するだけですが、何らかの理由で、期待どおりにはなりません。誰が何が悪いのか教えてもらえますか?

これがコードです

function [] = Roi()

imgData=rgb2gray(imread('1.jpg'));

[A,B]=find(imgData~=255);

xmin=min(A);

xmax=max(A);

ymin=min(B);

ymax=max(B);

width = xmax - xmin;

height = ymax - ymin;

imgSelect = imcrop(imgData,[xmin,ymin,width,height]);

imshow(imgSelect);

end
4

2 に答える 2

2

find結果を行\の形式で返し、X/Y ではありません。コードを機能させるには、変更するだけです

[B, A] = find( imgData ~= 255 );
于 2013-07-09T07:46:25.360 に答える