真ん中にパターンがあり、その周りに白い領域がある画像があります。余分な不要な白い領域を残して長方形のパターンだけを切り取る、つまり 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