白い枠で囲まれた画像があり、枠を取り除く必要があります。画像の上に 20 行の白いピクセル、左側に 5 列の白いピクセル、右側に 5 つの白い列、画像の下に 5 行の白いピクセルがあります。その境界線から正確に画像をトリミングしたくないのですが、matlab でこれを行うにはどうすればよいですか? あなたが与えることができるどんな助けにも感謝します!
(画像は tiff です。そのため、オンライン サービスを使用できません。.tiff をアップロードできません)
白い枠で囲まれた画像があり、枠を取り除く必要があります。画像の上に 20 行の白いピクセル、左側に 5 列の白いピクセル、右側に 5 つの白い列、画像の下に 5 行の白いピクセルがあります。その境界線から正確に画像をトリミングしたくないのですが、matlab でこれを行うにはどうすればよいですか? あなたが与えることができるどんな助けにも感謝します!
(画像は tiff です。そのため、オンライン サービスを使用できません。.tiff をアップロードできません)
必要なのは組み込みの MATLAB 関数imcrop
です。それを使用するには、次のように指定します
B = imcrop(A,[xmin ymin width height]);
Aが元の画像の場合。まず、画像のサイズを見つけます。800 x 600 とします。次に、770 x 580 の画像をトリミングして、これらの数値がそれぞれ上記の関数の幅と高さになるようにします。x と y は、それぞれ 5 と 20 のようになります。
画像処理ツールボックスがある場合、または次のように新しい画像を作成できる場合は、これに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
newIm = oldIm(20:length(oldIm(:,1))-5,5:length(oldIm(1,:))-5)