RawTherapee5.9で電線を除去してみる

村田町の布袋まつりの写真を撮ったが生憎と電線がくっきりと映ってしまった。

オリジナルの写真

そこでRawTherapee5.9を使ってこの電線を除去することにする。まず結果を示す:

加工後の写真

行った詳しい操作は別に述べるが、RawTherapee5.9の局所処理は処理を加えるべき画像の領域を手作業を排してあくまでもアルゴリズム的に決めているのが特徴である。その局所処理の設定パラメタの詳しい説明はここにある。

「Vフォー・ヴェンデッタ(V for Vendetta)」を観る

「Vフォー・ヴェンデッタ(V for Vendetta)」を観た。

近未来の英国で全体主義に抑圧されている人々に異議申し立てに立ち上がることを教える仮面の謎の男V。その契機に11月5日の英国の伝統的な祭りガイ・フォークス・ナイト(Guy Fawkes Night)を選ぶ。このあたりが象徴的である。

英国では11月の祭りとしてガイ・フォークス・ナイトがあるが近年ではハロウィーンの影になっているという。元々ガイ・フォークス・ナイトはプロテスタントとカソリックの間の宗教的対立の中で即位したプロテスタント王ジェームス一世(1603年即位)が定めたものという。その前日にこの王の即位を阻止するためにガイ・フォークスは議事堂に爆弾を仕掛けたが露見していしまう。これは多少アナキーであるが異議申し立てである。

原題のvendettaはインド・ヨーロッパ語由来の言葉で「教え」を意味するという。映画の主人公のVはその教えを広めるために現れた。ヒロインのイウイーはその教えを引き継ぐ一人である。

この映画の詳しい情報はここにある。

飛行機雲二題

秋は飛行機雲がよく出る。そこで飛行機雲を撮った写真を載せる:

10月26日夕方(宮城県立工業高校グランド)
11月2日夕方(青葉区霊屋橋)

Iphoneで撮った写真

Iphoneは軽いので何時も散歩のお供である。カメラも付いているので写真も撮れる。そのカメラで撮った写真である。

パン工房シベールの前にある桂
広瀬川の対岸

pythonプログラムのexe化

Pythonで作ったMakeCaptionWithLogo.pyをPythonに不案内なユーザにも使えるようにexe化することにした。

  • exe化にはpyinstallerを使った。pyinstallerをインストール後にコマンドプロンプトで以下のようなコマンドを入力する:
@echo off 
pyinstaller --onefile --exclude-module numpy \
 --exclude-module ..... --exclude-module ..... \
--exclude-module ..... --exclude-module .....  \
 --noconsole --icon=TOMATO.ico MakeCaptionWithLogo.py

ここで–exclude-moduleオプションはexe化で排除しても無害なモジュールを書く。numpyは大きなモジュールでプログラムでnumpyを使っていないときには積極的に排除する。その他のオプションの説明はここにある。

これでdistフォルダにMakeCaptionWithLogo.exeができる。これがこのファイル1つで配布可能なexeファイルである。サイズは約10MB。排除オプションを外すとサイズは約30MB。排除オプションは有効であることがわかる。

  • この手の配布用のexeファイルを作成するときには仮想環境を使うのが普通らしい。そこでPythonの仮想環境で使う開発環境で述べた仕方で仮想環境を作りこの環境下でexe化を行った。インストールしたモジュールはプログラムに必要なものだけした。できるexeファイルのサイズは10MBを切るだろうと期待したが、この仮想環境下でできたexeファイルのサイズは期待に反して約15MBであった。

 

 

Pythonの仮想環境で使う開発環境

ごつい表題であるが、いつも使っているPythonのプログラミング開発環境を仮想環境でもそのまま使いたということである。

  • Python3.10.4がインストールされているwindows10にそれと同じヴァージョンのPythonの仮想環境を作る:

win10のコマンド・プロンプト(CMD)の窓で

python -m venv [環境を作成したいパス]

ここの[環境を作成したいパス]はユーザ領域で構わない。このpathの中にあるScriptsフォルダにあるactivate.batというバッチファイルをCMDの中で実行すると仮想環境が実現する。詳しくはここを参照。

  • いつもはPythonパッケージに付随して配布されているIDLEをプログラミング開発環境として使っている。この環境を仮想環境の下でも使う。インストールされたそのままではリンクが全て実環境を向いているので、それらのリンクを全て(と言っても2つ)を仮想環境に向ける。

そのために実環境を向いたIDELと別に仮想環境を向いたIDELを作る。まずインストールしたIDELのショートカットを新規につくりそれが仮想環境を向いていることを示す任意の名前する。そのプロパティを開き[リンク先]のpath2つを変更する。
変更前

"C:\.....\Python310\pythonw.exe" \ 
"C:\.....\Python310\Lib\idlelib\idle.pyw"

変更後

"C:.....\PythonEnv\MyEnv\Scripts\pythonw.exe" \
"C:.....\PythonEnv\MyEnv\Scripts\sample.pyw"

ここでsample.pywは以下を中身とするファイルでフォルダScriptsに保存したものでありIDLEが起動される時に実行される:

from idlelib.pyshell import main
main()

詳しくはここを参照のこと。

このIDELを使うことによって実環境の時とほぼ完全に同じ開発環境で仮想環境下でのPythonプログラミングができる。

スローシャッターの面白さ

いつもはプログラムモードで写真を撮っているがシャッター優先でシャッターを遅くして写真を撮ると面白い写真ができることがある。

お弁当の時間だ

これは20分の1秒で撮っものだ。足の部分がぼけていて動きが強調されてくる。

米ケ袋の滝

これは風景であるがスローシャッターにすることで滝の水の存在感が増す。

最後の例は動いている物体(車など)を追ってスローシャッターで写真を撮ると物体以外は線状にぼけ、物体に運動の疾走感がでる。

仙台ループルバス

スローシャッターの写真で非日常的な写真が撮れる。

tkinterでcaption自動作成

必要があって展覧会に展示する作品に添付するcaptionを自動生成するプログラムを作ってみた。問題はtkinterで作った画面を画像ファイルにして印刷する工程である。

tkinterのcanvasウイジェット上にcaptionのイメージを作成し、このイメージを画像ファイルとして保存する。canvasウイジェットには自身が作ったイメージをpostscriptファイルにする機能があるが、日本語に取り扱いができない。そこで試みたことは画面の部分スクリーンショットで、canvasの部分を切り取って画像ファイルとして保存する。この方法を使った。

この部分の処理はPILモジュールのimagegrabとwin32guiを使った。win32guiでcanvasを含むwindowを特定し、imagegrabでその窓のcanvas部分だけを切る取ることをした。

作成例

作成例(写真L版サイズ)

ユーザインタフェイスは以下のような感じ:

上段:データ入力フォーム;下段:カンヴァス

全体のプログラムはここで見れる。