傾いてしまった画像に、「正しい垂線」を引くことで、まっすぐに回転・補正するためのマクロです。
//Tilt_Correction.txt
setTool("line");
waitForUser("Draw a line","Draw a \"True\" vertical line, then click [OK].");
getLine(x1, y1, x2, y2, lineWidth);
//calculate angle
g = (y2-y1)/(x2-x1);
angle = atan(g)*180/PI;
if(g>0) modAngle = 90-angle;
if(g<0) modAngle = -90-angle;
showMessageWithCancel("Tilt Correction","Rotate Image");
//fill background with white
setBackgroundColor(255, 255, 255);
run("Rotate... ", "angle=modAngle grid=1 interpolation=Bicubic fill");
print("Rotated by",modAngle,"degrees");
//reset background color (black)
setBackgroundColor(0, 0, 0);
使い方
① 傾いてしまった画像をImageJで開く。
② マクロ「Tilt_Correction.txt」を起動させる。
(ショートカットに登録しておくとラク。マクロをインストール(再起動)したあと、上部タブ[Plugins]→[Shortcuts]→[Add shortcut]。私の場合はF12に入れています。)
③ 正しい垂線を引いて、[OK]クリック。
④ 画像が回転される。良ければ上書き保存や[File]→[Save As]等で保存する。
本来は「完全自動処理!」にしたいところですが、残念ながらそこまでのテクニックは無いので「ほぼ手動」です。
2020.04.16. 追記
念願の「完全自動処理タイプ」も作成しましたので、こちらもチェックしてみてください。
マクロの起動方法
①ImageJ上部タブの[Plugins]→[New]→[Macro]で起動したエディタに、記事の一番上のコードをコピペしてtxtファイル(Tilt_Correction.txt)を作成・保存する。
②保存したファイルをImageJフォルダ内の[plugins]フォルダにしまう。
このとき、[plugins]フォルダの中に新たに適当な名前のフォルダを作って、その中にしまってもOKです。ここでは仮に「自炊」というフォルダにtxtファイルを突っ込んだとします。
③一度ImageJを再起動すると、マクロがインストールされ、起動準備OK。
④上部タブ[Plugins]→[自炊]→[Tilt Correction]でマクロが実行されます。
(オススメはショートカットから起動です!)
ライセンスなんかは一切無いので、ぜひぜひ自由に使ってみてください!