前提・実現したいこと
現在研究活動で、画像処理を行っています。
画像の入力、走査、出力までしたのですが、その後QGISという地理座標ソフトに表示させる方法が分かりません。
該当のソースコード
Python
1from skimage import io 2from PIL import Image 3import numpy as np 4import math 5def scanning(img): 6 h, w = img.shape[:2] # グレースケール画像のサイズ取得(カラーは3) 7 x_step = int(w/3600) # 領域の横方向へのずらし幅 8 y_step = int(h/3600) # 領域の縦方向へのずらし幅 9 x0 = 0 # 領域の初期値x成分 10 y0 = 0 # 領域の初期値y成分 11 a = 11.06 12 j = 0 13 14 # 縦方向の走査を行うループ 15 while y0 + (j * y_step) < h-1: 16 i = 0 # 横方向の走査が終わる度にiを初期化 17 # 横方向の走査をするループ 18 while x0 + (i * x_step) < w-1: 19 if abs(im[i,j] - (im[i+1,j+1]*math.tan(math.radians(a))+im[i+1,j]*(1-math.tan(math.radians(a))))) < (30/((math.cos(math.radians(a)))*(math.tan(math.radians(46))))) : 20 im[i,j] = 0 #地形効果なし 21 else : 22 im[i,j] = 1 #地形効果あり 23 24 i = i + 1 25 j = j + 1 26 27 return img 28 29 30#画像の読み込み 31img = io.imread('N037E138_AVE_DSM.tif') 32 33#numpyに格納 34im = np.array(Image.open('N037E138_AVE_DSM.tif')) 35 36img = scanning(img) 37 38im = np.delete(im, 3599, 0) 39im = np.delete(im, 3599, 1) 40 41print(im) 42Image.fromarray(np.uint8(im)).save('shadowing_A.tiff') 43img1 = io.imread('shadowing_A.tiff') 44
試したこと
現在画像をnumpyに格納することで処理を行っていますが、もしnumpyを用いずにに処理できれば、地理座標系について考慮する必要がなくなるのかなと思っていますが、やり方は分かりません。
もしくは出力した画像に地理座標系を参照させることが出来ればと考えています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。