FC2ブログ

パソコン作業で困った時は「ひろじょう」

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

画像を張り付ける

 エクセルの枠内に画像を差し込む作業は、かなり一般的に行われています。
 そのためのツールも各種公開されていますし、私も何種類か作りました。

 同様の事をワードでもできないかと思い立ったのですが、これがなかなか手ごわい代物でした。

word_pic_01.png

 あらかじめ「差し込むマス」を作っておき、その中に差し込む画像のファイル名を書き込んでおきます。
 そして、力技で作ったツールを動かすと、

word_pic_02s.png

自動的に画像が入ります。

 マスの数が100個だろうと1000個だろうと、ツールの動作に支障はありませんし、全自動ですので処理時間は(画像の質にもよりますが)分単位です。

 しかし、ワードVBAの制限というか画像の取り扱いに自由がきかないところがあるので、機能的に納得のいかない部分も多々あります。今後の研究が必要でしょう。

スポンサーサイト

PageTop

パターンマッチング

○グループ1 約1000個の写真画像
○グループ2 約200個の写真画像
を渡されました。

 グループ1は、一般的なデジタルカメラの画像です。
 グループ2は、市販されているホームページ素材集の画像から、更に一部分を切り出したみたいな部品です。
 グループ1とグループ2の間には、関連はないという事でした。つまり、グループ1の画像を切り抜いてグループ2の画像を作ったのではないのです。

 依頼内容は、「グループ1の各画像について、グループ2の画像に雰囲気が似ている個所があったら、目印を付けて欲しい」との事。

 作業の仕組みそのものは、簡単です。人力でもできます。
 グループ1の1画像を表示して、グループ2の各画像を順に表示して、似ている部分があったら、お絵かきソフトで目印を付ければ良いだけですから。
 ちょっと面倒なのは、200枚の画像を順に表示するという作業を、1000回繰り返さなければならないという事です。

 これ、理論上は可能ですが、実際には人力だと無理ですよね。
 そこで、私に「困った」という連絡がありました。

 話を頂いて、2時間で専用ツールを作り、1時間で各種パラメーターを調整し、本番処理に3時間かかりました。
 工夫次第で、パソコンは強大な力を発揮するのです。

PageTop

特殊効果作業をしました

 「ちょっと特殊な効果を入れたいのですが」という話を頂きました。
 様々な動画編集ソフトを試してみたけど、どうしてもできなくて(ソフト側に、その様な機能がない)、動画サイトを見回っているうちに、たまたま弊社の

補色重ね

をご覧になって、「もしかしたら・・・」というお話でした。

 細かい話やサンプルをお見せできないのが残念ですが、確かに動画としては特殊な効果でした。
 「マトリクス」という映画がありますが、あのカメラワークを初めて見た時の様な、「ああ、これはまったく新しい発想だ」に近いものを感じましたね。

PageTop

オブジェクトの連続使いまわし

 今ここに、
il_dup01.png
この様なオブジェクトがあります。

 このオブジェクトの複製を指定の場所に作る場合は、
・コピー、ペースト(つまり、二重化)
・新しいオブジェクトの位置プロパティに座標を入れる
という作業になるでしょう。
 まあ、簡単ですね。

 では、指定の場所というのがたくさんあった場合、例えば、
il_dup02.png
この様に数十個ある時は、どうすれば良いでしょうか。

 「丹念に、ひたすら作業」というのもあるでしょうが、あまり喜ばしい事ではないですね。
 百個以上あったりしたら、一気にパンクです。

 とりあえず、ちょっとしたツールを作ることで、
il_dup03.png
簡単に対応する事ができました。(おまけで、オブジェクトに名前を付けています。)
 これなら、千個以上あってもスッパリ対応可能ですね。

PageTop

グラフに図形を入れる

 下の画像で、上のグラフと下のグラフは全く同じに見えますが、実は微妙に違います。
shp_into_graph_fig01.gif

 上のグラフを左側に、下のグラフを右側に動かしてみました。
shp_into_graph_fig02.gif

 よく見ると、上のグラフは「比較検討」というテキストボックスと矢印が、グラフ全体の移動と調子を合わせて移動していますが、下のグラフは場所がずれてしまっています。

 その原因ですが、実はそれほど奥が深いものではありません。
 上のグラフでは、テキストボックスと矢印は、グラフの要素としてグラフの中に入り込んでいます。そのため、グラフ本体が移動すれば、そのまま一緒に移動します。

 それに対して下のグラフは、「グラフ」「テキストボックス」「矢印」の間に何の関係もありません。
 あるシートの上にグラフがあって、テキストボックスがあって、矢印があって、
・たまたま、グラフの上にそれっぽくテキストボックスが乗っている
・たまたま、そのテキストボックスに矢印がくっついて見える
だけなのです。
 そのため、グラフを動かしても、テキストボックスと矢印の場所はそのままですので、結果的に左にずれて見えることになります。

 この様な「グラフの作り方の違い」は、それほど意識する必要はないでしょう。
 下のグラフの様な場合でも、関係するものをグループ化すれば、全部が連動して動きます。
 つまり、簡単に表現すると「基本的に、どっちでも良い」という事ですね。

 先日、
・まとまった数のグラフがある
・部品(テキストボックスや矢印)が、グラフの内部にあったり外部にあったりと、まちまち
・エクセルからワードにグラフを持って行くとき、たまに部品を見失う事がある
・気持ち悪いので、全部グラフ内部に入れて欲しい
という依頼がありました。

 専用のカスタムツールを作って対応しましたが、ツール作成時に、グラフ内部に貼り付けた部品の位置微調整に手こずりました。

PageTop

等高線を描く2

 面的な広がりを持った計測値、計算値等は、一般的に
toko_140312_01.png
この様な「横・縦・値」という形をしています。
(この画像は、緯度経度と標高の例です)

 このデータをしかるべき形に再整形すれば、エクセルの標準機能で、
toko_140312_02.png
面グラフを作成できるのですが、これはダメですね。標高の区分数が少なすぎます。

 そこで、パラメーターを調整して、
toko_140312_03.png
区分数を大きく増やしてみましたが、やはりダメです。
 「何がどうなっているのか、わからない」以前に、正視に耐えません。

 更に、
toko_140312_04.png
色使いを調整してみました。

 かなり良くなったみたいですが、まだしっくりきません。
 その原因は、影(陰影)です。影があった方が良い場合もあるのですが、今回は不要ですね。

 仕上げとして、
toko_140312_05.png
影を取り除きました。
 このレベルに達すれば、十分に成果品として使えるでしょう。

PageTop

縦分解

 エクセルで、
縦分解01
この様に整理された表があります。
 左から1列目にはグループ情報が入り、2列目には分類情報が入っています。
 3列目以降には、各グループ・分類に所属する情報が1つ1セルで右方向に入っています。
 つまり、同じグループ・分類に所属する情報が多いほど、表全体は右方向に広がっていきます。

 エクセルで表の処理を行う際に、「列数が異なる」というのは、実は非常にやっかいなのです。これはグラフだと「行によって系列数が異なる」みたいなものですね。
 横ヒストグラムとして見るならば、これはこれでうまい集計方法なのかもしれませんが。

 そこで、列数が一定となる様に、
縦分解02
この形式へ再整理しようとしました。

 再整理の仕組みそのものは非常にシンプルです。作業手順も、「これをこうして、次はこうして」とスラスラ言えるのは言えます。
 しかし、実際にやるとなると、それなりに面倒な作業ですよ。

PageTop

整数丸め

 まずは、この表
seisu_marume_fig01.gif
をご覧下さい。人名の右側に、何かの数値が入っています。

 この数値を四捨五入して整数にするのは、実に簡単な事ですね。関数一発です。
 では、それぞれについて元の数値と、得られた整数値との差を表示させたい場合は、これも実に簡単ですね。

 ここから、話が一気にややこしくなっていきます。
 会沢さんと赤松さん、稲葉さんは、整数値がどれも「7」です。ですが、元数値と整数値との差は、それぞれ約0.20、0.29、0.1となり、その場合は「整数値7グループについては、稲葉さんが最も差が小さい」となります。
 同様の考え方だと、「整数値10グループについては、甘粕さん」となるでしょう。

 こうなってくると、関数一発というわけにはいきません。計算列をいくつか組み合わせたり、何回か並び替え処理をする必要があり、意外な面倒くささがあります。

 「毎回毎回、面倒な処理をしたくない」という話を頂き、
・どこまでの処理作業なら、面倒くさく感じないか
・将来も継続的に処理するのか、それともホンの一時な事なのか
について協議した結果、「専用ツール作成」で対応させて頂きました。

PageTop

テキストの回転

 何かと比較されるArcGISとMapInfo、実際にはArcGISの一人勝ちみたいなところがありますが、MapInfoにはMapInfoなりに、ちらほらと非常に優れたところがあります。
 その一つが、「CADファイル(dxf、dwg)の扱いやすさ、再現性の高さ」ですね。

 ArcGISでdwgファイルを開くと「うーん、ちょっと見た目が悪い」になりますが、MapInfoでは
org01.png
という具合に、「CADソフトで表示させたものと、ほぼ同じ」画面が再現されます。
 この「テキストオブジェクトの傾き具合」が、何とも絶妙ですね。

 さて、読み込んだdwgファイルは、通常そのままではMapInfoで使えません。それは、
・(GISとしての)座標を持っていない
・上が北になっていない
からです。
 ということは、「座標を与えて回転させてやれば問題ない」という事なのですが、確かに座標を与えるのは慣れると簡単な作業です。
 やっかいなのは、回転、特に「テキストオブジェクトの回転」なのです。

 MapInfoの標準回転機能ですが、一つはMapCADですね。
org01_cad30.png
 時計回りに30度回転させました。見てのとおり、テキストオブジェクトそのものは回転していません。場所も背景とは完全に食い違ってしまっています。
 これは・・・とても使い物にならないですね。

 別観点の対策として「マップの回転」というのがあります。
org01_map30.png
 こちらも、だめですねぇ。

 さて、今の課題は、
org01_text_only.png
このテキストオブジェクト達を、いかに美しく回転させるかなのですが、実は標準機能以外の道具を使うと
org01_cmif30.png
という具合に、あっさり実現できてしまったりします。

 さて、成果品納入時に「MapInfo?、ArcGIS形式で納品して下さい」というのもよくある話で、こうなってくると更にやっかいです。せっかく調整したテキストオブジェクト達は、ArcGIS形式に変換すると「横水平」になってしまいます。
 MapInfoのテキストオブジェクトは、ArcGISとは別世界ですね。
(そもそも、GISで「テキスト」という事自体に無理があるのでしょうが。)

 一つの解決策は、
org01_text_only_pline.png
これですね。テキストオブジェクトを折線でトレースしてポリゴン化してしまいます。
 もちろん、手作業でやると無限に時間がかかるので、ソフトウェア的に処理します。
 こうしてしまえば、ArcGISにも簡単に持っていけるでしょう。

 気になるソフトウェア的トレースの精度ですが、
org01_text_only_pline2.png
 重ねてみました。黒が本来のテキストオブジェクト、緑がトレースで作成した疑似テキストオブジェクトです。
 まだまだ微調整は可能ですが、既に実用上問題ない精度が出ていると思います。


PageTop

人の検出

 以前から「防犯カメラ動画から、動きがあるものを見つけ出して欲しい」というご依頼はあったのですが、いよいよというか、ついに「人の姿だけを見つけて欲しい」という話を頂きました。

 いろいろと試行錯誤した結果、
hito01.jpg
この様な画像や、

hito02.jpg
この様な画像を抽出する事ができるようになりました。

 しかし、まだまだ改良が必要です。
 現在のところ、
・誤判定が20%ほど混じる
・判定もれが発生する
・(事前パラメータ調整を抜きにして)約1時間の動画処理に約30分かかる
という課題があります。

 誤判定と判定もれはややこしい関係にあって、
・検出を厳しくする → 判定もれは減るが、誤判定が増える
・検出を甘くする → 誤判定は減るが、判定もれが増える
という、何とも悩ましい状況です。

PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。