1
を保つ、1500pxまで、私はこのコードを使用:PILで画像を翻訳し、私は私が2500px左の翻訳する必要があるイメージを持っているすべてのコンテンツ
from PIL import Image
img = Image.open('decoupe_test4.tif')
a = 1
b = 0
c = 2500 # +left/-right
d = 0
e = 1
f = 1500 # +up/-down
translate = img.transform(img.size, Image.AFFINE, (a, b, c, d, e, f))
translate.save('translated.tif')
画像の境界が変化しませんでしたしかし、コンテンツがなかったので、私は右に、この画像で終わる:
は、誰もが、すべての画像が正しく翻訳され、この黒い部分を取り除く私が得ることができる方法を知っていますか?
ありがとうございます!ここで
はそれが明確であってもよいし、全体のコードです:
import subprocess
gm = os.path.join('C:\\','OSGeo4W64','bin','gdal_merge.py')
merge_command = ["python", gm, "-o", "mergedB04.tif", "S2A_tile_20170410_31TFJ_0\B04.jp2", "S2A_tile_20170410_31TGH_0\B04.jp2", "S2A_tile_20170410_31TGJ_0\B04.jp2", "S2A_tile_20170420_31TFH_0\B04.jp2", "S2A_tile_20170420_31TFJ_0\B04.jp2", "S2A_tile_20170420_31TGH_0\B04.jp2"]
merge_command2 = ["python", gm, "-o", "mergedB08.tif", "S2A_tile_20170410_31TFJ_0\B08.jp2", "S2A_tile_20170410_31TGH_0\B08.jp2", "S2A_tile_20170410_31TGJ_0\B08.jp2", "S2A_tile_20170420_31TFH_0\B08.jp2", "S2A_tile_20170420_31TFJ_0\B08.jp2", "S2A_tile_20170420_31TGH_0\B08.jp2"]
subprocess.call(merge_command,shell=True)
subprocess.call(merge_command2,shell=True)
from PIL import Image
import rasterio
from rasterio import Affine
outfile = r'test4.tif'
Image.MAX_IMAGE_PIXELS = 1000000000
im = Image.open('mergedB08.tif')
half_the_width = im.size[0]/2
half_the_height = im.size[1]/2
decoupe = im.crop(
(
half_the_width - 2500,
half_the_height - 1500,
half_the_width + 2500,
half_the_height + 1500
)
)
decoupe.save('decoupe_test4.tif')
################### test de translation
img = Image.open('decoupe_test4.tif')
a = 1
b = 0
c = 2500 #left/right (i.e. 5/-5)
d = 0
e = 1
f = 1500 #up/down (i.e. 5/-5)
translate = img.transform(img.size, Image.AFFINE, (a, b, c, d, e, f))
translate.save('translated.tif')
# remise dans le bon scr de l'image
profile = {'driver': 'GTiff',
'dtype': 'float32',
'nodata': None,
'width': decoupe.size[0],
'height': decoupe.size[1],
'count': 1,
'crs': {'init': 'epsg:32631'},
'transform': Affine(10.0, 0.0, 704880.000,0.0, -10.0, 4795110.000)
}
profile.update(driver='GTiff')
profile.update(dtype=rasterio.float32)
with rasterio.open('translated.tif') as decoupe_RAS:
RAS = decoupe_RAS.read().astype(float)
with rasterio.open(outfile, 'w', **profile) as dst:
dst.write(RAS.astype(rasterio.float32))
入力画像がどのようなものが見えますか?出力イメージはどのように表示されるべきですか? –
入力画像は、より大きな画像(sentinel2という少数の衛星画像をマージして得られる)のカットですが、カット後、この画像はもはや参照されませんでした。私はそれを再び与えることができましたが、まだオフセットがあります。入力と出力は同じ画像でなければなりません。翻訳で区別するだけです –
入力画像、出力画像、予想出力画像、そして問題を再現するコードの最小量が必要です。 –