やっと、計算力学技術者試験が終わった。12/15。固体、振動、流体とあるが、今年は振動を受けた。来年は固体。
来年に向けて、固体用のファイルを作った。
固体のファイルを作った時に、画像ファイルをリネームしたりクロップした。
携帯で読みやすくなった。
今年は、受験資格のソフトウェア使用経験を満たすため、通信講座に時間をかけた。そのため、試験勉強がおろそかになった。受かったかどうか自信はない。
裁断する
問題集は薄い。だから裁断機でも切れる。
裁断は、本文が切れたりしなければ何でもいい。
分厚い本ならば、かんなで背表紙を削ってもいい。かんながあればの話。
かんなは、案外安い。右の裁断機、2011年頃買ったら10000位したような気がした。気のせいかもしれないが。一回で数十枚しか切れないので、重労働になる。
後の加工を考えると、この時点で、余白を切り取ってしまった方がよかったのかもしれない。
スキャンする
スキャナーは、適当。
読み取り速度とかあるのかもしれないけど、よくわからない。
一枚一枚、手で紙を入れ替えるやつは、やめたほうがいい。
紙が自動的に、吸い込まれてくやつがいい。
精度は、ファイルサイズと読みやすさから検討。
三種類ある。
- パタパタするやつ。
- 吸い込むやつ
- 本のまま、めくって写真をとるやつ。
- 手で走査するやつ。
画像をクロップする
数百問を手作業でクロップする。
問〇-〇ってところを認識してクロップとかできればいいけど、そんなテクニックは知らない。できない。
裁断するときに、余白を切り取ってしまった方がよかったのかもしれない。
↓ サンプルとして、作ったものを載せる。文章に意味はない。
ワードで作ったような問題集だったので、ワードで作ってみた。かなり再現性高いと思う。
ファイル名は、問題→回答順
紙の本の、問題集は、問題パートと、回答パートが分かれてしまっていた為、いちいちめくるのが大変だった。
問題→回答→問題→回答…この順番に並べ替える。
問題を奇数、回答を偶数で保存すると便利。
問題集は、順番通りのファイル名にしなければ、読みづらい。
リネームするマクロ
リネームするマクロを作った。
下のマクロは、偶数奇数を考えていない。少し書き直さないと、偶奇で保存できない。
os.rename(j, dirnm + r”/“ + “%05.f”%i + “%s”%(j)[-4:])
のiの部分を、2iとか、2i+1にすれば、何とかなるかも。よくあるやり方。
使用すると、フォルダ内の全てのファイル名が連番に変更されてしまう、恐ろしいマクロです。元に戻す方法は無い。
- 実行すると、フォルダ選択ダイアログが表示
- 選んだフォルダ内のすべてのファイルが、ファイル名順にソートされてから、5桁の0埋めの連番でリネームされる。
# coding: utf-8
import Tkinter
import tkFileDialog
import glob
import os
dirnm = tkFileDialog.askdirectory(title="Caution! carefully use.")
fnames = glob.glob(dirnm + r"/" + "*")
fnames = sorted(fnames)
lfname = len(fnames)
for i,j in enumerate(fnames):
print("%05.f"%i + "%s"%(j)[-4:])
os.rename(j, dirnm + r"/" + "%05.f"%i + "%s"%(j)[-4:])
縦長のページが、読みづらい
出来上がった画像ファイルは、スマホを横にして読みたい。
だから、画像ファイルは、横長がいい。横長にして、できるだけ大きい文字を見たい。
縦横比は、スマホにぴったりの16:9がいい。
なのに問題によっては、縦に長い画像になってしまう。
特に回答。
そんな時のために、画像をクロップするpythonのマクロを作った。
使用すると、フォルダ内の全てのjpgファイルが16:9に変更→分割されてしまう、恐ろしいマクロです。 かといって元のファイルを消すわけでもないので、そこまで怖くないかも。
# coding:utf-8
from PIL
import Image
import os, glob
import tkFileDialog
fld = tkFileDialog.askdirectory()
list = glob.glob(fld + "/" + ur"*.png") + glob.glob(fld + "/" + ur"*.jpg")
print list
for i in list:
im = Image.open('%s'%(i))
im_width, im_height = im.size
im_new_height = im_width / 16 * 9#縦のピクセル数 pixcel数の指定がしたいので、intの方が都合がいい。
last_height = im_height - im_new_height
if im_new_height*1.2 < im_height:#想定よりも1.2倍縦長ならば...
div_num = im_height / im_new_height
sft = (im_height - last_height) / div_num
if sft<im_new_height*1.7:
div_num += 1
else:
div_num += 2
shift = last_height / (div_num-1)
for i2 in range(div_num):
xl, yu, xr, yl = 0, i2*shift, im_width, im_new_height+i2*shift
im_crop = im.crop((xl, yu, xr, yl))
print i
print i2
im_crop.save('%s_%02.f%s'%(i[:-4], i2, i[-4:]))
print('%s_%02.f%s'%(i[:-4], i2, i[-4:]))
#print("%s, %s, %s, %s"%(xl, yu, xr, yl))
im_crop.close()
else:
print('%s'%(i))
im.close()
- 問の画像(すでに横長)に関しては、何も出てこない。
- 解答の画像(縦長)は、分割されたファイルが出てくる。元の画像はそのまま。
- ファイル名は00001_00, 00001_01, 00001_02, 00001_03, となっているはず。
こんな感じ。
一日20ファイル(10問)を目安に、やっていこうと思っている。
- 中速フーリエ変換 ~離散フーリエ変換より..
- 断面二次モーメントを、座標点の配列から計..
- 断面二次モーメントを、座標点の配列から計..
- fontファイルの文字データ(グリフ)を..
- matplotlibのpyplot.pl..
- pythonで、ホワイトノイズやピンクノ..
- 脳ドッグに行ってきた。→MRIの画像デー..
- matplotlibのimshowで円を..
- matplotlibの、cmapを、徐々..
- matplotlibのmake_axes..
- matplotlib floatinga..
- matplotlib plotの色を、値..
- Pythonで、「二次元フーリエ変換した..
- matplotlibのlinestyle..
- どちらが正しいRGBか。(matplot..
- matplotlibのannotateの..
- matplotlibで、x軸とy軸の数字..
- VBAで、pythonのrangeとか、..
- matplotlibのaxes3Dで、a..
- matplotlibのlatexで、行列..