Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
! mozi-koodo: EUC ! 05/11/15版 ! 適当な3色だけで描かれた画像の中の、それぞれの色の部分の面積比 ! などを求める。 ! 例えば木橋の写真で、木部材の橋全体に占める割合や ! 木橋の全景に占める割合を求める場合は、まず、 ! 橋の部分を切り出して背景白の画像に貼り付け、 ! 木部材の部分を赤一色で塗りつぶし、その他の部材を黒一色で ! 塗りつぶした画像を ppm のアスキー形式で保存したものを ! senyuu < hoge.ppm ! のように入力する。 ! ---------------------------------------- ! 但し、プログラムのデータ入力部分は、 ! ppmファイルの各行のデータの個数がどういうふうになっているかに ! 応じて、書き換えなければならない。 ! 以下は、GIMPでアスキー形式のppmフォーマットで保存したファイル ! (RGBデータが1行に1個ずつ書き込まれている)からの読み込みに対応させた例 ! program senyuug implicit real*8 (a-h, o-z) dimension rgb3(3900000) character p3*2,mozi*44 read(*,100) p3 100 format(a2) write(*,*) ' マジックナンバー:',p3 read(*,*) mozi read(*,*) m,n write(*,*) ' 幅:',m write(*,*) ' 高さ:',n mn=m*n read(*,*) max write(*,*) ' 最大値:',max do i=1,mn read(*,*) rgb3((i-1)*3+1) read(*,*) rgb3((i-1)*3+2) read(*,*) rgb3((i-1)*3+3) end do ! moku=0 nhoka=0 nzenbu=0 ! do i=1,mn nr=rgb3(3*i-2) ng=rgb3(3*i-1) nb=rgb3(3*i) ! 木部材のRGB階調値を指定 if((nr.eq.150).and.(ng.eq.0).and.(nb.eq.0)) then moku=moku+1 end if ! その他部材のRGB階調値を指定 if((nr.eq.0).and.(ng.eq.0).and.(nb.eq.0)) then nhoka=nhoka+1 end if end do ! write(*,*) ' 全ピクセル数:',mn write(*,*) ' 木部材ピクセル数:',moku write(*,*) ' その他部材ピクセル数:',nhoka nhasi=moku+nhoka write(*,*) ' 橋全体のピクセル数:',nhasi write(*,200) ' 木部材/橋全体:',real(moku)/real(nhasi) write(*,200) ' 橋/全景:',real(nhasi)/real(mn) write(*,200) ' 木部材/全景:',real(moku)/real(mn) 200 format(a, f5.3) end !