ディスポーザーがつまりました

気が付くと1ヶ月更新してませんでした。

えー昨日ディスポーザーがつまりまして。

(ディスポーザーというのは、台所の流しで生ゴミを粉砕して流せるシステムのことです。)

ディスポーザーそのものは回転しているので、その奥で詰まっているようです。
微妙には排水しているようですが。


ネットで調べると、
トイレの詰まり解消に使うゴム製のお椀型の吸引機(ラバーカップって言うらしい)で
シュポンシュポンするのが良いような事が書かれてました。

結局、会社帰りにホームセンターに寄って買う事に。
これでダメなら業者呼ぶしか。

ところがホームセンターには、大小さまざまな大きさのものが。
しかし台所の排水口は大きいので
「この大きさで大丈夫か?もっと大きいの無いの?」
と、ちと心配だったのですが、

そのホームセンターで扱っている一番大きいサイズの説明に
『トイレの詰まり解消、キッチン排水口の詰まりにも』とあるのを見て
それを購入。

大きさはギリギリでしたね。


おそらく敵はディスポーザー下のU字管あたりなので、
その部分に詰まった敵を上下にゆするように意識して、
シュポン、シュポン!

数回やると何事も無かったかのように排水されていきました。

成功っと。

ディスポーザーは梅干の種など堅いものはNGなのですが、

玉ねぎやニンニクの薄皮のような繊維質の強い物も苦手なんだそうです。

うちの場合は
玉ねぎの皮なんか、問題なく処理できていたので気にせず使ってたのですが、
先日、玉ねぎペーストを大量に作ったのがボディブローになり、
昨日、大根の皮のかつらむきがトドメをさしたようです。

恐るべし植物繊維。


ちなみに、詰まった時に薬品に頼るのはディスポーザーには良くないらしいです。

詰まってない時の日頃のお手入れは、
週1ぐらいで、製氷機で作った氷を粉砕してやれば良いみたい。


詰まりではなく、回転しなくなった場合は、電源を切って異物を取り除く。
それがダメなら業者を。

| | コメント (0) | トラックバック (0)

集中力

集中力がもたない。
プログラム開発効率が普段の半分くらいに落ちた。

職場にバカが増えた。
ストレスを当り散らす奴とか、
役割りそっちのけでアピールに終始する奴。

そんなバカのお陰で思考がちょくちょく寸断される。


まぁ、つまらない雑用が次々降ってくるのもあるのだけれど。
複数の事を同時にやろうとして
頭の中が混乱している(コリジョンが発生している)ようだ。


イラついているのは自分の方なのかもしれない。
睡眠不足と疲労蓄積は確かにある。
そのせいで散漫になっているのかも。

こんな時は、まず落ち着かないと。

| | コメント (0) | トラックバック (0)

インフルエンザ



南半球(特にオーストラリア)で感染拡大が止まらないようです。
WHOがフェーズを引き上げてもおかしくないくらいの広がり方。

北半球が冬になる半年後は同じように歯止めが掛からなくなるのでしょう。

日本国内は、微増はしているものの鎮静化してきており、
諸外国に比べ、押え込みがちゃんとできているようです。


ちゃんと機能しさえすれば、日本の医療機関は優秀、
ということなのでしょう。

| | コメント (0) | トラックバック (0)

Touch! eco

日テレが eco week だとの事で、まんまと乗せられてみました。



地デジ対応のテレビでデータ放送を見るとポイントが貯まる。
ポイントが貯まるとキーワード(touch eco では“きーワード”)
が得られる。
携帯電話で特定の URL にアクセスしキーワードを入力すると
プレゼントがもらえる。
(touch eco では携帯待ち受け(全員)、Tシャツ/ecoバック(抽選))

民放テレビというのは、コマーシャルを見てもらってなんぼ、なので、
視聴率のためには録画よりもリアルタイムで見てもらう必要があったりで、
こういった双方向の試みは、今後増えていくような気がします。

| | コメント (0) | トラックバック (0)

WM_HSCROLL

例の AviUtl のプラグイン、ちまちまと改良してますが、
WM_HSCROLL が取れません。
スライダやスピンボックスの状態変化を知らせてくれる
ウィンドウメッセージなのですが。
親ウィンドウでマスクされている?
それとも自分の処理がミスってるだけ?

以前 "Hello World!" で window プログラミングのあまりのわずらわしさに
投げ出してしまった私のような window 初心者にとって、
こういったコントロールの実装は鬱陶しい以外の何ものでもないです。

たいして創造性が伴う作業じゃないので興味が湧かないんでしょうね。


なんだかんだで、形だけは整ってきました。



しかし、肝心のアルゴリズム改善にはまったく手がつきません。
ある意味、本末転倒な気が。

| | コメント (0) | トラックバック (0)

超解像


リンク
画像の変換(目次ページ)
『拡大・縮小』関連
画像の縮小
画像の拡大「Nearest Neighbor法」
画像の拡大「Bilinear法」
画像の拡大「Bicubic法」
画像の拡大「Lanczos法」
画像の拡大-距離計算に関する考察
・超解像


東芝のホームページに REGZA に搭載している『超解像技術』
(レゾリューションプラスなど)の解説記事がありました。

ここここ


「実に、おもしろい。」
「私もやってみよう!」




ある画像①を拡大し、拡大した画像②をもう一度縮小③すると、
オリジナルとの差分④が得られます。



『差分が出てしまうということは、
 拡大時に落としてしまった情報成分があるのではないか?』


どうやら、そんな発想から来ているようです。

こういった考え方は MPEG Video エンコードのループバックに似ています。

『オリジナル画像①を拡大した②に情報の差分があるということは、』

『拡大という処理による予測にギャップ(予測誤差)があるという事で、』

『であれば、ギャップ(誤差)を補間してやれば良い。』


実にシンプルな(素直な)考え方で、
(シンプルだからこそ)「正しいんじゃないか?」という気がします。

ただ、東芝ホームページの情報からは
「どの様に補正すれば良いのか?」
がわかりませんでした。

「技術の核心部分はそう簡単に教えるわけがない。」
という事なのかもしれません。

そこで、手っ取り早く、
差分成分④を拡大したデータ⑤を作り、
拡大画像②に対して係数を掛けて足しこんでみる事にしました。



こうして作成した補正データ⑥に対して、もう一度縮小処理を行い、
それがオリジナル①に近くなるように、係数λを変えて調べてみました。

元画像 (160x120)

Bilinear 拡大 (240x180) Bilinear 拡大 (240x180)
+補正(λ=1.58)
Bilinear では(この画像では)λ=1.58 の時に最適になりました。
確かに絵を見ると、
補正前(←) はピンボケしているのに
補正後(→)はクッキリしているようです。
(効果はありそうです。)

Bilinear の場合、画像によって、あるいは拡大率によって
λ=0.5~2.0 ぐらいの間でバラツキがありました。

Bicubic 拡大 (240x180) Bicubic 拡大 (240x180)
+補正(λ=1.00)
Bicubic では、見た目に違いは、、、良くわかりません。
しかし、計測上では λ=1.0 の時に最適となり、
差分データはゼロではありませんから、
あきらかに補間前(←)と補間後(→)に差分があります。

Bicubic では λ=1.0 ~ 2.0 に収束する傾向がありました。
拡大率でλが 1.0 付近とか 1.5 付近と決まると、
画像を変えてもほぼ一定でした。

Lanczos2 拡大 (240x180) Lanczos2 拡大 (240x180)
+補正(λ=1.00)
Lanczos2 や Lanczos3 でも λ=1.0 ~ 2.0 に収束する傾向がありました。
画像に依存しない点も Bicubic と同様です。

補正前と補正後の画質の違いが良くわからない、という点も Bicubic と同様です。

Lanczos3 拡大 (240x180) Lanczos3 拡大 (240x180)
+補正(λ=1.00)
もしかすると、Bicubic や Lanczos2, Lanczos3 は周波数成分を
ある程度正確に処理できているので、
補正による効果は、ほとんど判らない程度、
という事なのかもしれません。


動画編集マニアの間では有名な AviUtl という編集ツールがあります。
そのプラグインを作ってみました。(拡大縮小と超解像のテスト)
置いておきます。
チューニングはしておりませんので『画質評価用』ということでお願いします。

| | コメント (0) | トラックバック (0)

パンデミック


上記はWHOのinfluenza情報CDCのinfluenza情報からの集計。

厚労省は「鈍化してきた」と言っているが、
増加の傾きは、諸外国に比べても著しく高い。

これは「抑えこみが上手く行っていない」事を表しているだけなのでは。

諸外国には
・医療水準が低くて感染増加そのものを把握できていない。
・単にWHOに報告していない。
などの事情があるのかもしれないが、それを差し引いても
医療水準が高いはずの日本が、このありさま。


「技術」はあるのに「運用」(体制、システム)がなっていない
というだけの事ではないだろうか。

関西で蔓延したのは、今考えれば、一人の感染者(キャリア)あるいは、
同一ルートで侵入した同一グループ(複数人)が感染源だろう。

1キャリアから 300 人超もの感染者に広める事を許してしまったのは
あまりに無防備と言えよう。

今回のインフルエンザは弱毒性(初期治療さえすれば完治)だから良かったものの、
これが強毒性の感染症だったら、あるいは細菌兵器によるテロだったら。

あっさりと防波線を突破されたあげく、何日も感染拡大に気付かず放置。
そう考えると、あまりに無防備だ。

この防御の弱さを引き起こした原因は何なのだろう?

地理的な要因があるのだろうか。
航空機の搭乗時間がキャリアを侵入させやすい距離にあるんだろうか。

あるいは気象要因として
乾燥しているとか、特別なウィルス拡散要因があったのだろうか。

普通に考えれば、
「対処方法が間違っていた。」
ただそれだけの事だろう。

GW連休の頃は『水際作戦』と称して
「国内への侵入を防ぎさえすれば大丈夫」
というやり方に終始。

『水際作戦』そのものに効果が無い、との報告もありますが、
それを別にしても
「水際で食い止めていさえすれば、国内感染は有り得ない。」
「渡航歴が無ければ A 型 B 型の簡易検査すらする必要が無い。」
そんな情報操作を行った事にこそ功罪があるのではないだろうか。


折りしも、今週水曜に官僚の天下り実績が発表されました。
「日本の役人は、自分の出世と天下り先の事しか考えていないのでは?」
そんな事を思う事がたびたびあります。

役人は決して非を認めない。
間違いを認めないから、反省をしないし、
反省が無いから進歩・成長が無い。

役人が日本をダメにしているのではないかと思う。

そんな役人なら最低賃金よりも多く給与をもらう価値があるとは思えないが、
おそらくはるかに多くもらっているのだろうし。

役人天国の構造を変えないと何も変わらないのだろう。


一方、メディアはどうだろうか。

そんな体制を野放しにして問題提起すらしないメディアにも問題があるのだろう。
メディアは関西で感染者が見つかるまでは、
「水際作戦」べったりの報道に終始した。
結果的に、情報操作の手先としてしか機能しなかった。

関西で見つかった直後、感染者が100人、150人と増えている段階では
「マスク・パニック」をあおる事しかしなかった。
メディアは一転して「お祭り盛り上げ隊」として機能した。

なにが間違っていたのかを冷静に分析して、問題点を改善するぐらいのレベルまで
組織として成熟してくれないと。

| | コメント (0) | トラックバック (0)

アンチエイリアシングとClear Type


リンク
画像の変換(目次ページ)
アウトラインフォントとアンチエイリアシング
アウトラインフォント
・アンチエイリアシングと Clear Type

アンチエイリアシング

アンチエイリアシング(anti-aliasing)というのは、
上記のようなギザギザの線や曲線を下記のように滑らかにする事です。

この様にした方が、滑らかに見える、と言われています。

アンチエイリアシングの方法は幾つかあります。

1つは、実際に必要になる解像度よりも高い解像度でデータを作成し、
平均をとって中間値を作り出す方法です。

【高解像度データ】


【実際に表示されるデータ】


このように高解像度データから中間値を求めた方が奇麗に仕上がります。

しかし、この様に高解像度でデータを作るには、
そのためのメモリ領域と、高解像度にするための余計な処理時間が必要です。

そうではない場合、
つまり、表示の解像度までデータの解像度を落としてしまった場合は、
ぼかしフィルタを使ってぼかすだけになります。

【ぼかし】

ぼかしにはラプラシアン・フィルタなどが用いられます。

Clear Type

Clear Type については
アットマークの Clear Type 解説
や Microsoft msdn の Clear Type の概要
に詳しい解説がありますが、
一言で言うと、
『液晶の各画素の R,G,B の重心がずれているので、
 その重心ズレをも考慮してアンチエイリアスを掛ける』
という処理です。


具体的には、下記のようにモノクロデータがあったとすると、

従来方法は R,G,B に同じ値を設定するのに対し、
Clear Type は R,G,B ごとに補正した値を設定します。

フォントを表示した時に典型的な(白→黒→白)の場合には下記の様になり、
黒の左側は R が強調、右側は B が強調される事がわかります。

Clear Type を拡大した時にフォントの左側が赤っぽく、右側が青っぽい理由が
これでわかりましたね。


| | コメント (0) | トラックバック (0)

アウトラインフォント


リンク
画像の変換(目次ページ)
アウトラインフォントとアンチエイリアシング
・アウトラインフォント
アンチエイリアシングと Clear Type

アウトラインフォントには「2次 B-スプライン曲線」や「ベジェ曲線」と
呼ばれるものを使います。

実は、
・2次ベジェ曲線 (Quadratic Bezier Curve)
・2次 B-スプライン曲線 (Quadratic B-Spline Curve)
の2つは同じものです。

・2次ベジェ曲線 (Quadratic Bezier Curve)
・3次ベジェ曲線 (Cubic Bezier Curve)
の2つは次数が違いますが考え方は同じです。

PostScriptフォント3次ベジェ曲線 (Cubic Bezier Curve)
True Typeフォント2次ベジェ曲線 (Quadratic Bezier Curve)
(2次 B-スプライン曲線 ( Quadratic B-Spline Curve) )

2次ベジェ曲線

下記のように3点(Q1,Q2,Q3)が与えられたとします。
Q1F1:F1Q2 = 1:(1-t) となるように点 F1 を定めます。
同様に、点 F2 と G1 を定めます。
0≦t≦1 の範囲で t を動かすと G1 の軌跡がカーブを描きます。
このカーブを 2次ベジェ曲線と呼びます。


このカーブを直観的に理解するには、
(英語版 Wiki)のモーションGIF が秀逸です。

2次ベジェ曲線の数式による定義
次の2次多項式で与えられます。
P = (1-t)2*Q1 + 2t(1-t)*Q2 + t2*Q3
(0≦t≦1)

2次ベジェ曲線への再帰的アプローチ
実は、
上記の数式を用いてコンピュータで曲線の座標をプロットしていくことは
簡単です。
しかしながら、プロットした点を隙間の無い連続した線にするのは
コンピュータにとってはちょっと大変なのです。

フォントの展開では別の手法を取ります。
同じ事を繰り返す事を『再帰(さいき)』と呼びますが、
再帰という方法でベジェ曲線を引く方法です。


まず、Q1 と Q2 の中間点(まん中の点) R1 を求めます。
同様に R2 を求めます。

次に R1 と R2 の中間点 S1 を求めます。

Q1-R1-S1 の3点に対して
Q1-Q2-Q3 でやった事と同じ事を繰り返します。

これを何回か繰り返すと、ある曲線に収束していく事がわかります。
通常は数回で収束します。

この曲線は、フォントデータでは縁取り(境界線)になる部分です。

フォントでは、目で見て区別が付かない程度に収束すればよいので、
たとえば Q2 と S1 の距離が 1 ピクセル以下になれば、
再帰を中止して、あとは、その3点を線で結べば完成です。

最後に得られた曲線の内側を、べったりと塗りつぶします。
(この塗りつぶしの際に、線に隙間が無い方が都合が良いのです。)
こうしてフォントの完成です。

2次ベジェ曲線では次のような特徴があります。
・端点 Q1 におけるカーブの傾きは Q2 を向いている。
・端点 Q3 におけるカーブの傾きは Q2 を向いている。
・Q1、Q3 の中間点を A1 とすると
 A1S1:S1Q2 = 1:1 となる。
 (A1 と Q2 の中間点 S1 にカーブが接する)


3次ベジェ曲線
考え方は 2次ベジェ曲線と同じです。(点を増やしただけ)

下記の図で
0≦t≦1 の範囲で t を動かすと H1 が曲線を描きます。
この軌跡が 3次ベジェ曲線です。


3次ベジェ曲線の数式による定義
次の3次多項式で与えられます。
P = (1-t)3*Q1 + 3t(1-t)2*Q2 + 3t2(1-t)*Q3 + t3*Q4
(0≦t≦1)


3次ベジェ曲線への再帰的アプローチ
Q1, Q2, Q3, Q4 の中点 R1, R2, R3
R1, R2, R3 の中点 S1, S2
S1, S2 の中点 T1 を求めます。

Q1-R1-S1-T1 の4点が得られます。

この4点に対して、Q1-Q2-Q3-Q4 の4点と同じ事をします。

2次ベジェ曲線の時と同様に、これを数回繰り返すと曲線に収束します。

フォントの場合はこの内側を塗りつぶします。


3次ベジェ曲線では次のような特徴があります。
・端点 Q1 におけるカーブの傾きは Q2 を向いている。
・端点 Q4 におけるカーブの傾きは Q3 を向いている。
・Q1、Q4 の中間点を A1 とすると
 A1T1:T1R2 = 3:1 となる。  (T1 にカーブが接する)


アウトラインフォント
ベジェ曲線の基点となる点(上記の Q1~Q4(or Q3) )
でデータが構成されています。

ドローソフト(Adobe の Illustrator とか MS Office の power point とか)で
下記のような曲線を描く事ができます。

アンカーポイント(曲線上の制御点)と方向線の制御点が 3次ベジェの端点に
なっているようです。

この様なカーブでフォントの境界線が作れるであろう事は想像がつくかと思います。

パソコンなんかでフォント1文字を表示するたびに、
ベジェ曲線の展開と塗りつぶしを行っているわけです。
(もちろん、よく使う文字は高速化のため作り置きしていると思いますが。)

ビットマップフォントに比べたアウトラインフォントの利点ですが、
このように基点によってデータを管理する事によって
【元データ】から


フォントの【拡大】


【伸ばし】


【回転】


【傾け】

などが自在にできるわけです。

(注)通常のフォントはイタリック用のフォントを別データとして持っていたはずです。
 (上記のように基点を傾けてその都度作成しているわけではありません。)

| | コメント (0) | トラックバック (0)

エッジ検出・エッジ強調・ぼかし


リンク
画像の変換(目次ページ)

【エッジ検出】
まず、エッジ検出の考え方ですが、
以下のように隣のピクセル値との差分を取る事が基本的な考え方です。

実際には、画像は2次元なので、
上下左右のピクセルとの差分を取るために次のようなフィルタを用います。
0-10
-14-1
0-10

0-10
-14-1
0-10
=
0-10
010
000
+
000
-110
000
+
000
01-1
000
+
000
010
0-10
   上との差分  左との差分  右との差分  下との差分


これとは別に次のようなフィルタを用いる場合もあります。
(斜め方向のエッジも検出できるフィルタです。)
-1-1-1
-18-1
-1-1-1

-1-2-1
-212-2
-1-2-1


上の絵(↑)のエッジ検出したものが下記(↓)です。

(エッジの方向によって色を付けています。)


【シャープネス(エッジ強調)】
エッジ強調には次のようなフィルタを用います。
0-10
-110-1
0-10
このフィルタの意味ですが、
上下左右の 3x3 ピクセルの値が下記であったとします。
P-1,-1P-1,0P-1,1
P0,-1P0,0P0,1
P1,-1P1,0P1,1
各ピクセルにフィルタ係数を掛けて得られる次の値がエッジ強調後の値です。
(10*P0,0 - P-1,0 - P0,-1 - P0,1 - P1,0) / (10-1-1-1-1)


エッジ強調には、これとは別のフィルタが用いられる場合もあります。
たとえば下記。
-1-1-1
-110-1
-1-1-1

-2-2-2
-232-2
-2-2-2


実際に、やってみましょう。
[エッジ強調前](元データ)

上(↑)のエッジ検出がこれ(↓)です。


[エッジ強調1-1]
0-10
-110-1
0-10


ほんの少し、エッジが強調されています。

フィルタ係数を少し変えてみましょう。
[エッジ強調1-2]
0-20
-210-2
0-20


前よりもクッキリしました。

もう少しフィルタ係数を変えてみましょう。
[エッジ強調1-3]
0-2.20
-2.210-2.2
0-2.20


だんだん鮮明になってくる気がします。

もう少し変えてみましょうか。
[エッジ強調1-4]
0-2.40
-2.410-2.4
0-2.40


ここまでやると、やり過ぎな感じです。
人為的な修正部分が目立ち過ぎて、自然さが失われたようです。
本来なら目立たないはずのノイズが強調によって目立ってしまい、
そのような不自然さを感じるのかもしれません。

念のため、もう少しフィルタ係数を変えてみましょうか。
[エッジ強調1-5]
0-2.50
-2.510-2.5
0-2.50


これはもう、『エッジ強調』というより『エッジそのもの』です。
というのは、次の式が成り立ちます。
0-2.50
-2.510-2.5
0-2.50
=
0-10
-14-1
0-10
* 2.5
右側のフィルタ係数をみると、これは『エッジ検出フィルタ』の係数です。

ここまでの「フィルタ係数の微調整」をまとめると、こんな感じになります。
[エッジ強調1-1]エッジ成分が少ない
[エッジ強調1-2]
[エッジ強調1-3]
[エッジ強調1-4]エッジ成分が多い
[エッジ強調1-5]エッジ成分そのもの
つまり、フィルタ係数を微調整する事で、
「オリジナル画像とエッジ成分の比率を変えている」
わけですね。
そして、エッジ成分の比率を上げるとエッジが協調される、と。


別のフィルタ係数でも同じ事をやってみましょう。
[エッジ強調2-1]
-2-3-2
-332-3
-2-3-2



[エッジ強調2-2]
-2-5-2
-532-5
-2-5-2



[エッジ強調2-3]
-2-5.5-2
-5.532-5.5
-2-5.5-2



[エッジ強調2-4]
-2-6-2
-632-6
-2-6-2




【ぼかし】
『エッジ強調』は「オリジナル画像」に「エッジ成分」を加える事でした。
『ぼかし』の場合は、逆の事をすれば良いわけです。
たとえば、次のようなフィルタが用いられます。
111
151
111

フィルタというのは何も 3x3 に限ったわけではなく、
次のような 5x5 が用いられる場合もあります。
11111
10001
10001
10001
11111

| | コメント (0) | トラックバック (0)

«虹