イメージ内の楕円形のオブジェクトを円になるまで引き延ばしたいと考えています。私のプログラムは現在、楕円形のオブジェクト(角度のあるコインなど)を含む画像を入力し、それをしきい値処理して2値化し、edge-detect / bwboundaries()を使用して関心領域を分離し、regionprops()を実行して長軸/短軸の長さを計算します.
基本的に、「MajorAxisLength」を直径として使用し、短軸でオブジェクトを引き伸ばして円を形成したいと考えています。これにどのようにアプローチすべきかについての提案は大歓迎です。閲覧用にいくつかのコードを追加しました (残念ながら、画像をアップロードするのに十分な評判がありません。2 値化された画像は、黒い背景に白い楕円のように見えます)。
編集: この手法を画像のグレースケール バージョンに適用して、ストレッチがどのように見えるかを調べたいと思います。
コードスニペット:
rgbImage = imread(fullFileName);
redChannel = rgbImage(:, :, 1);
binaryImage = redChannel < 90;
labeledImage = bwlabel(binaryImage);
area_measurements = regionprops(labeledImage,'Area');
allAreas = [area_measurements.Area];
biggestBlobIndex = find(allAreas == max(allAreas));
keeperBlobsImage = ismember(labeledImage, biggestBlobIndex);
measurements = regionprops(keeperBlobsImage,'Area','MajorAxisLength','MinorAxisLength')