映画 寄生獣の感想書いとく

ブコメでいろいろ残しちゃったから実際に自分が観た感想を書いとく。

前提条件として、寄生獣の原作は連載してた頃に全巻買って何回か読んでる。あと最近、Kindleで発売されたときに通して読みなおした。
映画は別に期待してたわけではなく、休日の午前中に市街地に出て時間が余ったから観ただけ(本当はインターステラーを観ようと思ってたんだけど時間が合わなかったのと3時間という尺で断念した)。なお、はてな民に不評の山崎貴監督作品は観てない。
映画自体も他人と比べて観てるわけではないので素人の感想と思ってくれていい。




ネタバレは気にせず書くので以下注意。





問題になってる母信子の右手がシンイチを救うというシーンと母性の継承うんぬんの話だけど、実際のところ寄生されてからの信子が感情芝居をするところはほとんどない、というかそもそも出てこない(シンイチの家に来て刺し殺すシーンとラストに河川敷で対決するシーンだけ)。で、問題の河川敷シーンだけど、

戦うシンイチと信子(ちなみにここのシーン香港映画ぽくてなんだかなぁと思った)

とどめを刺そうとするが一瞬躊躇するシンイチ

触手がシンイチを襲うが間一髪わずかにずれる

信子の右手が左手を押して軸線がずれてる

(ここでシンイチの「かあさん...」的なセリフがあったような気がするがうろ覚え)

とどめを刺す

という感じ。もちろん、製作者の意図としては母親が息子をかばったというニュアンスを出したいんだろうけど実際のところは露わにそういう描写をしているわけでなく単に右手が暴走したという可能性も残してる。もしこれが、

パラサイト信子「うごご・・・身体がうごかん」
信子(シンイチ!今よ!)
シンイチ「かあさん!ありがとう!」

みたいな演出だったら自分も盛大にdisってたと思うけどそこまでじゃない。あと、パラサイト信子(というかAなんだが)と信子の感情が混ざってる的な描写もないこと、戦闘中に反射的にシンイチを庇ったのが天ぷら油からシンイチを庇ったのと同じ右手ということから、母性の継承というより魂の在処はどこか的な考察の方が正しい気がする。すなわち、

寄生生物によって脳を奪われてしまったが身体の中には元の人間の残滓がわずかに残っている(可能性がある)

という演出をアリかナシかという話。それを踏まえた上で、そんなものは原作のテーマにない、とか、そんなのは科学的じゃない、という批判はあり得ると思う(自分はそれほど違和感を感じなかったけど)。まぁ、これはあくまで自分が映画を観て受けた印象なので監督が完結編で母性の継承とかぶっこんできたら知らん(なげやり)。

じゃあ、本作は突っ込みどころのない良作だったかというとそうでもない。母子家庭にしたこと自体は父親を描いていると尺を取られるし、それにあわせて母親の性格や関係性も変更しているので特に問題はなかった(完結編パートでどうなるかは知らんけど)。ただ、路地裏でシンイチに倒されたAがたまたま通りかかった信子に寄生するという内容に変更してしまったために、パラサイト信子(A)がシンイチの家に来るという必然性がなくなってしまっている(原作だと目撃された父親を始末するために家に来た)。しかも、家にさっき自分が殺そうとして逆に倒されたシンイチがいることは完全に予想外の事態のはずなのに、そこは原作準拠であっさり殺して立ち去るという不自然さ。
また、ラストシーンも田宮良子からAの居場所を教えられたシンイチ(これもご都合主義ぽいんだけど)の来訪に対してAは平然と対応してる。もし、殺したはずのシンイチが生きていたらAとしては予想外のはずだし、逆に田宮良子からシンイチが生存していることを教えられていたのならAは自らシンイチを殺しに行ったと考えられるのでこのへんも不自然。

島田秀夫に三木の要素を入れてイケメンナンパ男にして美術部女子達からモデルを頼まれ・・・という流れは上手いと思ったけど、完結編で後藤登場のところはどうするんでしょ。

また、田宮良子役の深津絵里が個人的にはちょっと辛かった。これは多分、深津絵里の演技力うんぬんという話ではなく演出上の問題だと思うんだけど、なんか特撮物に出てくる悪の女幹部みたいになってた。本来の田宮良子は高い知性を持ってて普段は完全に人間に擬態してるのに時折、寄生生物としての本性を剥き出しにするというあたりが怖さだと思うんだけど、終始、仰々しい感じの演技になっちゃってるのが不満。あとティースプーンを舌で曲げて周囲に悟られることなくシンイチを脅すシーンが、いきなり水族館の案内板を破壊する演出に変わっててあれはちょっと擁護できない。

と、まぁdisり始めるとキリがないくらいdisりたいところがあるんだけど、原作のちょうど前半部分を未見の人にも理解できるように話を破綻させず2時間で纏めた点は評価できるし、前半部分のテーマである"胸の穴"とシンイチの変貌というところは外してなかったと思う。また、主人公シンイチ役の染谷将太の演技も良かった。特に母親がパラサイトになって戻ってきたときの狼狽や蘇生した後、母親の死を再認識したときの嗚咽(泣いてはないんだけど)は惹きこまれた。ので個人的にトータルとしては赦すという結論です(と同時に原作知ってる人間がdisりたくなるのも分かるw)。
でも、仔犬を助けてからゴミ箱に捨てるシーンはもうちょっと尺が欲しかったなぁ。助けてから捨てるまでが急過ぎてただの冷徹な人間ぽい演出になっちゃってた。

とまぁこんな感じ。

Fiji/ImageJのJython scriptでBio-formatsプラグインを使う

Olympus FV1000で取得したoibファイルなどをFiji/ImageJのBio-Formatsプラグインを使って一括でtiffファイルに変換するJython script


Jython scriptでのBio-Formatsの使い方は以下のページを参照

Jython example script for working with the Bio-Formats API in Fiji.


一応、動いたけどきちんとした動作確認はしていないので自己責任で

from loci.plugins import BF
from loci.plugins.in import ImporterOptions
import os, glob

def run():
    #変換したいファイルが入ったフォルダを選択(それ以外のファイルを入れないこと)
	inputDir = DirectoryChooser("Choose input directory").getDirectory() 
	if inputDir is None: #キャンセルした場合
		return

	#出力先のフォルダを選択
	targetDir = DirectoryChooser("Choose target directory").getDirectory()
	if targetDir is None: #キャンセルした場合
		return

    #入力ディレクトリからファイルだけを抽出する
	files = glob.glob(os.path.join(inputDir, "*.*"))

	for file in files: 
		options = ImporterOptions()
		options.setColorMode(ImporterOptions.COLOR_MODE_GRAYSCALE) #関係ないかも
		options.setId(file)
		imps = BF.openImagePlus(options)
		imp = imps[0] #impsはImagePlusオブジェクトのリストになってる?
		filename = file.split(os.sep)[-1].rsplit(".", 1)[0] #パスからファイル名だけを抽出
		output = os.path.join(targetDir, filename + ".tif")
		IJ.saveAsTiff(imp, output)
run()

macportsの再インストールからIPython notebookを使えるようにするまで(覚え書き)

Mavericksへのアップデートに併せてmacportsを再インストール。

まず既存のmacportsをアンインストール。

sudo port -f uninstall installed

してから

rm -rf /opt/local


次にxcodeコマンドラインツールをインストール(xcode自体はインストール済み)。

xcode-select --install


Mavericks用のmacportsインストーラをダウンロードしてきてインストール。

インストールできたら、selfupdateしておく。プロキシの設定は以前のエントリを参照。


とりあえずpython関連で必要なものだけをインストール。

sudo port -v install python27
sudo port -v install py27-numpy
sudo port -v install py27-scipy
sudo port -v install py27-matplotlib
sudo port -v install py27-pandas
sudo port -v install opencv +python27

sudo port select --set python python27


次にIPython関連。

sudo port -v install py27-ipython
sudo port select --set ipython ipython27


notebookの使用に必要な諸々(いくつかはこの時点ですでに入っているかも)。

sudo port -v install py27-jinja2
sudo port -v install py27-sphinx
sudo port -v install py27-zmq
sudo port -v install py27-pygments
sudo port -v install py27-tornado
sudo port -v install py27-nose
sudo port -v install py27-readline

以上で完了。


ipython notebook --pylab=inline

でブラウザにIPythonが表示される。--pylab=inlineはmatplotlibのグラフをブラウザ内に表示させるため。
使用した環境によって、新しいnotebookを開くとdead kernelになる(attempt to write a readonly database)。
sudo権限でipythonを起動したら一応おさまった。

FijiのTrackMateプラグイン

最初、サンプル画像でもTarget detectionができなかったんだけどバージョンをv2.1.0からv2.1.1に上げたらできるようになった。update fijiではバージョン上げられなかったので、fijiごと新たにダウンロードしてきて入れ替えた。

proxy内でmacportsを使う(2013/10)

KUINS-III内部でmacportsを使う方法。svnを使う方法は良く紹介されてるけどもっと簡単にできた。

selfupdateは、

sudo RSYNC_PROXY=(プロキシサーバーのアドレス):(ポート番号) port -d selfupdate

で通る。サーバーのアドレスはpから始まるあれ。

installまたはupgradeをするには/opt/local/etc/macports/macports.conf内の

# HTTP proxy:
# proxy_http
# HTTPS proxy:
#proxy_https
# FTP proxy:
#proxy_ftp
# rsync proxy:
#proxy_rsync

を以下のように変更(コメントアウトを外してサーバーアドレスとポート番号を追加)。

# HTTP proxy:
proxy_http (プロキシサーバーのアドレス):(ポート番号)
# HTTPS proxy:
proxy_https (プロキシサーバーのアドレス):(ポート番号)
# FTP proxy:
proxy_ftp (プロキシサーバーのアドレス):(ポート番号)
# rsync proxy:
proxy_rsync (プロキシサーバーのアドレス):(ポート番号)

プロキシサーバーのアドレスは上記と同じあれ。httpなどは付かない。
これで通るはず。

タイムラプス画像での視野のずれを補正する(ImageJ/Fiji)

(14/10/17 追記)ImageJ/Fijiのバージョンアップに伴ってこれまで自動的にインポートされていたclassがインポートされなくなった。もしうまく動かない場合は、scriptの最初に

from ij import IJ

from ij.measure import ResultsTable

と記述すると動くはず。

(追記ここまで)

 

タイムラプス撮影中に視野がずれてしまった場合にそれを補正する方法。
マクロでもできるけど、今回は練習がてらにFijiにインストールされているPython(Jython)を使ってやってみた。

まず、視野のずれとともに移動してる適当な物体を選びその座標を計測(単位はPixelで)。今回は対象細胞の重心をAnalyze Particlesを用いて計測。

対象データのWindowをアクティブにして、Script Editorにて

 

#対象データのImagePlusおよびImageStackオブジェクトを取得
imp = IJ.getImage()
stack = imp.getImageStack()

#計測したリザルトが格納されたオブジェクトを取得
table = ResultsTable().getResultsTable()

#計測した基準点の座標リストを取得
x = table.getColumn(table.getColumnIndex('X'))
y = table.getColumn(table.getColumnIndex('Y'))

#初期位置
x0 = x[0]
y0 = y[0]

for i in xrange(1, imp.getStackSize()+1):
#今回のデータは3チャンネルのComposite Imageなので
#3枚おきに初期位置とのずれを計算する
	if i % 3 == 1:
		offset_x = x0 - x[i / 3]
		offset_y = y0 - y[i / 3]

#画像オブジェクトを取得しオフセット分だけずらす
	ip = stack.getProcessor(i)
	ip.translate(offset_x, offset_y)

と記述し、RUN。

これだと元のデータが変更されるので、元のデータを残したければ、impをduplicateしてそちらをいじればいいかな。