RawTherapeeによる背景のぼかし

RawTherapeeがヴァージョン5.9から局所処理に使えるようになってその処理を時々使っている。今回は背景をぼかすことにつかった。

写真は蝋梅をアップで撮ったものであるが、背景のボケが甘く蝋梅がすこし沈んでいる。そこで背景のボケを少し強くしたい。ボケの処理は簡単にできるがそれを背景にのみに作用させたい。この処理をRawTherapeeの局所処理で行う。

オリジナル画像

まず処理の適用部分の切り出しをする。RawTherapeeの領域選択はアルゴリズム的である。適用部分のなかに典型的なスポットを選択する。そのスポットを参照点として各ピクセルの色空間上の距離を計算する。これが予め定めてある閾値より小さければそのピクセルは参照点と同類であるとする。そうでなければこのピクセルは処理範囲外とする。このようにして参照点と同類であるかどうかで処理領域を決める。

背景をぼかす領域の設定では画面全体を選択してぼかす処理をしたくない点を参照スポットとする。今の場合は中心にある蝋梅の花弁。

つまり背景をぼかす処理をするときにはその処理をしたくない領域をまず確定させる。次にその「リヴァース」をとる。これで領域が反転する。この反転した領域がぼかしをかけたい領域となる。

適用確認ボタン(ΔEのプレヴュー)がにオンなっていると、適用領域に半透明のマスクがかかる。適用領域が期待したものになるように閾値(実は複数個ある)を変えてみる。

このようにして得られた領域に適当なガウスぼかしを施した画像を以下に載せる:

背景ぼかしをした画像

 

xubuntuのPythonマクロにScriptForgeを使う

ScriptForgeはLibreOfficeをプログラム的に操作することを目的としたモジュール作成のためにLibreOfficeから提供される膨大なライブラリー群である。Pythonマクロ作成にはその一部であるクラスCreateScriptServiceを使う。

ScripyForgeはLibreOfficeのインストールと一緒にインストールされるがxubuntuを含むubuntuではシステムワイドなパッケージとして別個にインストールする:

sudo apt install python3-scriptfoge

またこのクラスを継承した各種ドキュメント用、インタフェース用のクラスが用意されてる。これらの説明はここにある。

ここではスプレッドシートCalcをPythonマクロで操作するために必要なそのサブクラスを使う。

このサブクラスで使える様々のメソッドの説明はここにある。

例題は「今開いているシートのセルA!に書かれている数値を読み込み、それに書かれていた数値に1を加えた数値を再度セルA1に書く出す」というものである:

# coding: utf-8
from __future__ import unicode_literals
from scriptforge import CreateScriptService
doc = CreateScriptService("Calc")
def increment_cell(args=None):
    value = doc.GetValue("~.A1")
    print(type(value))
    value += 1
    doc.SetValue("~.A1", value)
g_exportedScripts = (increment_cell, )

GetValue、SetValueが使ったメソッドで、引数の中の~はCalcで今開いているシートを指す。最後の行はこのモジュールでマクロとして登録する関数名をタプルで並べる。ここの例ではincrement_cellがそれである。

ScriptForgeなしでもマクロは書けるが、これを使った方がプログラムはすっきりする。

仙台でも梅が開花

今日(3月12日)に散歩中に近所の家の梅の花が一輪咲いているのを発見した:

咲いた梅一輪

もしかしてと思い東北大学片平キャンパスに行ってみた。そこの梅はかなりの花を付けていた:

片平キャンパスの梅

xubuntuにPythonマクロ環境をつくる

前回の続きである。LibreOfficeのマクロは様々なプログラミング言語で作れるようになっていて、Pythonもその1つである。

xubuntuでは別な方法もあるようであるが、ここではwin10でも使ったAPSOというツールを使った環境を作る。このツールの登録はLibreOffice.Calcを立ち上げてツール->拡張機能と進むと登録画面が出るので予めダウンロードしておいたAPSOを登録する。オプションでプログラミングで使うテキストエディタを指定する。xubuntuではnanoやplumaなどが使えるようになっているが、nanoはそのままではダメらしい。plumaは/usr/bin/plumaで引数なしでで立ち上がる。

ユーザが作るマクロの保存場所は決まっていてlinuxでは

.config/libreoffice/4/user/Scripts/python/

である。初期状態では必要なディレクトリが存在しないので適宜に作る。

またユーザが作る汎用的なモジュール(例えばメッセージボックス)は

.config/libreoffice/4/user/Scripts/python/pythonpath

に保存する。これらのモジュールはマクロでインポートして使うことができる。

APSOの起動はLibreoffice.Calcの画面のメニュの

ツール->マクロ->Pythonスクリプトの管理

で行う。APSOの初期画面がでるのでそのメニュから作業を始める(注:APSOの最新版はAPSO1.4.4であるが、ここでは安定版のAPSO1.3.2を使う)。

APSOはよく出来ていて開発中のマクロのデバッグ実行やPythonシェルの表示(マクロの中のprint文の出力はこのシェルにでる。これもデバッグに重宝)などの機能を持っている。なおLibreOfficeのPythonのヴァージョンは3.12.3である。

これで準備は完了。

xubuntuにPython仮想環境をつくる

娘が「遅い」といって手放したlenovoに軽いOSを入れてみた。このlenovoは確かに遅くwin10では精神衛生上よくない遅さである。CPUやメモリーが貧弱な割にハードディスクは容量が1000GBと豊富であるので、軽快に動くと定評のあるxubuntuをwin10とdual bootでインストールする。

xubuntu自体のインストールは問題なく進行したがその手前でPCのBIOSの画面を出すことに苦労した。最も確実な方法はNOVOボタンを使う方法であるらしいが肝心のそのボタンの場所が見つからなかった。このPCでは向かって左の側面のSDカードの挿入口の横に小さな穴がありそれがNOVOボタンでPCの電源を落とした状態でこのボタンを楊枝などで押すとBIOSの画面が立ち上がる。

【Python環境】

xubuntuのインストールでシステムワイドのPython(3.12.4)がインストールされるがPythonプログラミングは仮想環境で行うことが作法である。これはプログラミングが実験的な操作を伴うことが多くシステムワイドなPythonをいじりたくないからである。

そこでhome直下に作業ディレクトリを作りそこをPythonプログラミングの作業領域とする。ターミナルエミュレーターでそこに入って

python3 -m venv MyEnv

と入力。MyEnv(名前は任意)というディレクトリができ必要なファイルがインストールされる。

仮想環境の活性化は以下のコマンドによる:

source MyEnv/bin/activate

これでエミュレーターのプロンプトの先頭に(MyEnv)が付き仮想環境にいることがわかる。ここのPythonは初期状態ではパッケージは何もインストールされていない。プログラミングに必要なパッケージをインストールする。因みに不活性にするには仮想環境内でi以下のコマンドを入力:

deactivate

次に総合開発環境を使えるようにする。以前かからPythonに付属して配布されている総合開発環境idleを愛用しているので仮想環境でもこれを使う。xubuntuで配布しているidleはシステムワイドなPython用でそのままでは仮想環境では使えない。そこで仮想環境下で以下のコマンドを使う:

python3 -m idlelib.idle

これで仮想環境にリンクしたidleが立ち上がる。

 

以上でPythonプログラミングの環境ができた。

米ケ袋の蝋梅2025

米ケ袋の蝋梅が咲いていた。今日(2月9日)とは少し早いような気がするが、春は近いことを感じた。

蝋梅
蝋梅

Neil Young:”Four Strong Winds”

Neil Youngが若い時に歌った”Four Strong Winds”もいい。歌詞は:

Four strong winds that blow lonely
Seven seas that run high
All those things that don′t change come what may
But our good times are all gone
And I'm bound for moving on
I′ll look for you if I'm ever back this way

Think I'll go out to Alberta
Weather′s good there in the fall
I got some friends that I can go to working for
Still I wish you′d change your mind
If I asked you one more time
But we've been through that a hundred times or more

Four strong winds that blow lonely
Seven seas that run high
All those things that don′t change come what may
But our good times are all gone
And I'm bound for moving on
I′ll look for you if I'm ever back this way

If I get there before the snow flies
And if things are goin′ good
You could meet me if I send you down the fare
But by then it would be winter
There ain't too much for you to do
And those winds sure can blow cold way out there

手紙の文面のような歌詞が面白い。Neil Youngの歌声はここにある。

Jessica Rhaye:”Blowin’ in the Wind”

カナダ出身のJessica Rhayeが歌う”Blowin’ in the Wind”がいい。この曲は元もとはBob Dylanのものであるがおおくの歌手のよってカヴァーされている。歌詞は:

How many roads must a man walk down
Before you call him a man?
Yes, ’n’ how many seas must a white dove sail
Before she sleeps in the sand?
Yes, ’n’ how many times must the cannonballs fly
Before they’re forever banned?
The answer, my friend, is blowin’ in the wind
The answer is blowin’ in the wind

How many years can a mountain exist
Before it’s washed to the sea?
Yes, ’n’ how many years can some people exist
Before they’re allowed to be free?
Yes, ’n’ how many times can a man turn his head
Pretending he just doesn’t see?
The answer, my friend, is blowin’ in the wind
The answer is blowin’ in the wind

How many times must a man look up
Before he can see the sky?
Yes, ’n’ how many ears must one man have
Before he can hear people cry?
Yes, ’n’ how many deaths will it take till he knows
That too many people have died?
The answer, my friend, is blowin’ in the wind
The answer is blowin’ in the wind

動画はここにある。

また彼女が歌う”Four Strong Winds”もいい。これはカナダ出身のIan&Silviaの曲であるが、彼女も歌っている。

動画はここにある。

松島2025

先日(1月29日)に松島に行ってきた。写真クラブの撮影会。

実に久しぶり(おそらく20年ぶり)の松島。雄島をまわった。

松島
だるま
牡蛎せんべい

ほかの写真はここで。