3

白い枠で囲まれた画像があり、枠を取り除く必要があります。画像の上に 20 行の白いピクセル、左側に 5 列の白いピクセル、右側に 5 つの白い列、画像の下に 5 行の白いピクセルがあります。その境界線から正確に画像をトリミングしたくないのですが、matlab でこれを行うにはどうすればよいですか? あなたが与えることができるどんな助けにも感謝します!

(画像は tiff です。そのため、オンライン サービスを使用できません。.tiff をアップロードできません)

4

3 に答える 3

4

必要なのは組み込みの MATLAB 関数imcropです。それを使用するには、次のように指定します

B = imcrop(A,[xmin ymin width height]);

Aが元の画像の場合。まず、画像のサイズを見つけます。800 x 600 とします。次に、770 x 580 の画像をトリミングして、これらの数値がそれぞれ上記の関数の幅と高さになるようにします。x と y は、それぞれ 5 と 20 のようになります。

于 2013-07-24T21:12:53.480 に答える
2

画像処理ツールボックスがある場合、または次のように新しい画像を作成できる場合は、これにimcropを使用できます。

I2 = I(21:end-5, 6:end-5)

3 次元の場合は、次を使用できます。

I2 = I(21:end-5,6:end-5,:)

たとえば、コメントに従って:

I = rand(153,1510,3);
size(I); %  153        1510           3
I2 = I(21:end-5,6:end-5,:);
size(I2); % 128        1500           3
于 2013-07-24T21:11:37.780 に答える
0
newIm = oldIm(20:length(oldIm(:,1))-5,5:length(oldIm(1,:))-5)
于 2013-07-24T22:00:53.703 に答える