2002-04-28[n年前へ]
2003-04-28[n年前へ]
■出張授業「できるかな?」
してきました、ハイ。題目は「メガネの科学 - 少女マンガの方程式 -」と「"Colors"」です。「メガネの科学」の方はもちろん「めがねっこ大好き」を高校一年生用にアレンジしてみました。女子生徒が過半数以上と言うことで、ちょっと少女マンガをメインに上品に扱いつつ真面目な科学の授業プレゼン風のテイストで。そして、"Colors"の方はお笑い + Scraps + 教訓風?な書き下ろし?です。
結局、面白科学とちょっと真面目な言葉の話の二本立て45分授業でした。授業の方はまぁまぁ良かったんじゃないか、と。しかし、まさか教壇で「めがねっこ大好き」を話すことがあるとは…。
授業で使ったPowerPointのファイルを置いてみたいけれど、インターネットから集めた画像を結構使ったので、できないかな。ちょっと残念。
■水面に映る緑の木々
水面に写る景色はとても綺麗。それは、光の偏光を基準に反射する光りが選択させるために、水面で反射する景色の中では空はしっかりと蒼く雲はしっかりと白く木々がしっかりと緑に見えるせいかもしれないし、それだけではないのかもしれない。
もしかしたら、鏡の向こうの不思議な世界を見るような気持ちになるからかもしれない。
2004-04-28[n年前へ]
■ATOK17でのインストール
以前のATOKは必ずAMETの情報が書き込まれていました(確か)。ところが、ATOK17からはAMETのプラグインが標準添付ではなくなったせいで、標準ではAMETの情報がありません。私自身は「ドクターマウス」などのAMETがデフォルトでインストールされていたので、最近までそのことに気づきませんでした。少し前にやっと気づいて、インストール時にレジストリにAMETの情報が書き込まれていない場合にはAMETの情報を新規に書き込むにように変えたのです。が、そのときに「エラー表示が出る」ようにしてしまっていました(ソースをまだ見てないですが多分)。というわけで、直しておきます。感謝です。
■「AMETで一発芸」に挑戦編
「AMETで一発芸」に挑戦編. 参考になります。ちなみに、私が試したときはImageMagick 6.0.0Q16ではEPS変換に失敗したような気がしたので、そこは要チェック > 私、です。
ちなみに、「AMETで一発芸」を使うにあたって、高林哲氏の横着プログラミング 第1回: Unixのメモ技術の「ChangeLogメモの欠点」を読んでおくと、案外面白いんじゃないか、と思います。
■去年の今日見た景色
そういえば、去年の今日は福島県の高専で出張授業をしていた。学校の廊下から教室に入るとき、後ろの扉からではなくて前の扉から入るなんて不思議な感じだった。教壇の上から、開いた窓辺で揺れるカーテンを時折眺めるのはもっと不思議な感じだった。その、感慨を思い出して喋ろうとすると、結構涙腺のスイッチに近くを押されるような気が。
■「美人フィルタ」サンプル
「美人フィルター」は眉も太くしますので、この部分は修正が必要でしょう、という「気になる美容の話」
2005-04-28[n年前へ]
■Thinkpad 加速度センサのデータ取得
Windows\system32にあるsensor.dllの中身を覗いてみると、(Shockproof)GetAccelerometerDataとか、GetShockStatusなんていう関数がある。試しに逆コンパイルしてみる。そんなこんなの結果はこちらに。
C:\WINDOWS\system32>dumpbin.exe /EXPORTS sensor.dll 3 ShockproofGetAccelerometerData (00001610) 4 ShockproofGetAccelerometerDataEx (00001670) 7 ShockproofGetShockStatus (00001540)
■「空を向くアンテナ」と「地面の下の配水管」のニュース
リクルートのTech総研で「空の上に顔を向けるパラボラアンテナ」や「地面の下に張り巡らされている下水道」などの四本のNewsが公開されています。
2006-04-28[n年前へ]
■「アップルのカメラ埋め込み液晶ディスプレイ」
液晶ディスプレイ中に微小な無数のカメラを埋め込むことで、ディスプレイ画面とカメラを一体化させるというアップルの特許を「アップルの百眼ディスプレイ特許(Apple patent embeds thousands of cameras among LCD pixels)」から知った。United States Patent 20060007222というその特許を読んでみると、要点は「表示素子が並んでいるディスプレイ中に、撮像素子が埋め込まれていること」「撮像素子の前面のみに(表示素子の前面を遮ることがないように)レンズが装着されていること」となっている。
「表示素子が並んでいるディスプレイ中に、撮像素子が埋め込まれていること」というのは、ディスプレイとカメラを兼用するのだから当たり前の話である。そして、「撮像素子の前面のみに(表示素子の前面を遮ることがないように)レンズが装着されていること」というのも、当然である。カメラ部(撮像素子)は(ディスプレイ前方の)特定位置にピントを合わせなければならないのだからレンズが必要だが、表示部は「(ディスプレイ前方の)特定位置」からだけしか見えないのでは困ってしまうから、表示素子前面にはレンズをつけるわけにはいかないからだ。
このような「ディスプレイ画面とカメラを一体化させるデバイス」を使えば、ディスプレイを眺めながら同時にカメラに目線を向けることができる。つまり、テレビ会議で「相手と目を合わせて」話せるようになる。それは確かに気持ちが良いかもしれない。今すぐに実用可能な技術とは思いづらいが、将来は(Apple以外にとっては)イヤな感じの特許になったりするのだろうか?(公知例を探すのではなく)この特許を回避するとしたら、「撮像素子の前面のみに(表示素子の前面を遮ることがないように)レンズが装着されている」ということをしないという辺りだろうか、それとも表示素子と撮像素子の配置で逃げるのだろうか。
この発明者の思考過程を知るため、ちょっと発明者の背景を眺めてみた。発明者は、現在はAdobeに勤務していて、以前iMovieのプロダクト・マネージャーというポジションでAppleに勤務しており、その前にソニーの研究開発戦略本部のマネージャーだったようだ。かつて、撮像素子開発に優れるソニーの研究開発戦略に携わっていたという辺りが、撮像素子と表示素子を合体させるアイデアの背景だろうか。
2008-04-28[n年前へ]
■コトバを集めた"Logo"クラス
Contentクラスを継承したクラスを一つ増やしました。ふと思い出した言葉、眺めた後になぜか気になる「印象的な言葉」をメモするためにLogoクラスを作り、http://www.hirax.net/logos/から読むことができるようにしました。たくさんの人たちの言葉、短いけれど書き留めておきたいと感じた言葉を、ただ集めただけのページです。
2009-04-28[n年前へ]
■しりあがり寿が書く「文明」と「文化」という大きなヒント
しりあがり寿の「人並みといふこと 」には、「言われてみれば確かにその通りだ」「そうだ、そういうことに”ぼくら”は悩んだり、喜んだりするんだ」という「とても”ぼくら”を納得させてくれること」が溢れている。ここで、いう”ぼくら”というのは、中途半端な人だ。それが、「人並み」なのか、そうでないのかはわからいけれど、たぶん、結構多くの”ぼくら”だ。ちょっと、男性の方がそんな”ぼくら”は多いような気もするけれど、女性でもきっとある程度の数はいるだろう”ぼくら”だ。
「好きなものに賭けられる世の中っていいじゃないか」と言う。確かに「自由の果実」である「選択肢」は増えた。…でもそれはいたずらにルーレットの目を増やすだけで、人々を幸せにしているだろうか?
その、いつだって賭けなかった方の目、失われた別の可能性の亡霊がボクたちを苛立たせる。「もっといい選択はなかったのか」「あっちのほうがシアワセそうだぜ」選択肢が増えることも、可能性が増えることも、それは発展の証しのひとつに違いない。けれど、それらが”ぼくら”を悩ますことがあるのも確かなことだと思う。ずっと、そう思い、その答えをいつも探している。
そんな”ぼくら”に、しりあがり寿がテキトーに話す、そんな悩みに対する答えへのヒントは、こうだ。
僕は「火を発明するのが文明」で「その火の使い道を決めるのが文化」かなーと整理している。文明を推し進めるのは人の「ラクチンに安全に楽しく生きたい」という欲望。その欲望のおかげで人は便利なものを発明し、安全な都市を作る。しかし、弱い者でも生きていける世界を作るのが文明ならば、必然的に文明は人を弱くする。…そんな文明の弱点を補い、上手にコントロールしていくのが「文化」のような気がする。しりあがり寿が書く「文明」と「文化」に対する整理は、ぼくらを幸せにしてくれるヒントになっていると思う。それこそが、まさにひとつの「文化」ではないか、と思う。たとえば、しりあがり寿が手書きで書く言葉・想いが幾重にも重なっり重さをもったもの、それが文化というものなのではないだろうか。
おわりに 「人並みといふこと」
2013-04-28[n年前へ]
■エクセルのグラフ配色をマトモにするためのツール(2013年版)
先日、Microsoft ResearchがMicrosoft Excel上で時空間上に各種データをマッピングすることができるアドイン「GeoFlow」のプレビュー版をリリースしました。このアドインは確かに凄いのですが、エクセルという道具を振り返り眺めてみれば、「これじゃない〜!」という気持ちを強く感じてしまいます。何より先に、グラフの配色を直感的にマトモにしてくれよ!と思うわけです。
というわけで、「エクセルのグラフ配色をマトモ・自由自在にするためのツール(2013年版)」(Excel Chart Designer 2003/2007/2010/2013)をリリースしました。…といっても、以前作ったソフトのバグフィクスおよびOffice 2013 for Windows での動作確認を行うとともに、Excel 2007以降でエクセルのグラフ配色を操作するためのRubyスクリプトを同梱した程度です。
たとえば、左下はExcel 2003のデフォルト配色チャートです。そして、それをExcel 2003上でマトモに変えてみた結果例が、右のチャートです。
Excel 2007以降ではチャート面の透明度も設定できるので、たとえば右に貼り付けたExcel 2013での実行画面を眺めれば、チャート面を半透明に透けさせることで、隠れてしまう部分の値を見せることもできます。
このツールを使うには、次の手順を行います。まず、配色を変えたいエクセルのチャートを選択した状態で、(Excel 2003用、もしくは2007〜2013用の)配色操作ソフトを立ち上げます。そして、縦軸の最小値・最大値・刻み幅を設定した上で、変更したい配色を選びます(あるいは任意のグラデーション画像を選びます)、そしてボタンを押すと、Excelを外部から操作してチャート配色が綺麗に変更される、という具合です。
エクセルが作る直感的でない配色のグラフ、そして、そんな配色のグラフが配置された資料を見て「うーん何だかなぁ…」という気持ちになっていた人には、お勧めかも!?
Mac OSX版も作ってみました(エクセルのグラフ配色をマトモにするためのツール OSX 版)。
2015-04-28[n年前へ]
■化学器具で作ったルーブ・ゴールドバーグ・マシンみたいな「水タバコ」の吸引具
「鏡の国のアリス」でイモムシが吸っていた水タバコ…そんな水たばこ屋を売るショーウィンドウの前で見とれたことがある人はきっと多いと思います。まるでそれは、化学(ばけがく)材料で作ったルーブ・ゴールドバーグ・マシンみたいで、不思議に魅力的な力が溢れる世界に見えて…思わず見とれたことがある人は多いはず。
2018-04-28[n年前へ]
■草間彌生デザインの「水玉模様のモジモジ君ウェア」で人体の表面形状を推定してみよう!
数ヶ月前に買ったつもりのZOZOスーツ、服に取り付けられたセンサ群とスマホの間でさまざまなデータが交換され、自分の体を知ることができるという「面白さ」に惹かれて…はや数ヶ月、「大幅な性能向上」したものが届くという連絡内容を見ると、、そこには「コレジャナイ感が、超大盛りラーメン店のようにテンコ盛りされた、草間彌生デザインの「水玉模様のモジモジ君ウェア」でした。マーカー付けた衣服を使って(スマホによる)画像計測による採寸を行うデザインに変わっていた…というわけです。
ネットには、新バージョンのZOZOスーツ試着写真もtwitterにはアップロードされ始めています。そこで、そんなマーカ模様が付けられた服を着用した画像からの人体形状推定をしてみることにしました。「ネットにアップされた画像から」というわけで、多視点撮影からの3次元推定を行うZOZOスーツ正式バージョンとは違い、一枚画像からの体表面形状の推定です。
書いてみたのは、下に貼り付けたような、十数行ばかりのPython/Jupyterコードです。OpenCV でテクスチャ検出をして、その(円形マーカーの)大きさや形状の歪みを使って、模様部分の体の表面形状情報を推定する…というわけです。Pythonコードを実行した結果は、たとえば下の4 図のようになります。向かって左から、元画像・高さ(凹凸)画像・向き(180度の反対側を区別できない)画像・法線画像です。この処理例は、水玉模様の水着画像で処理を行ったものですが、新型ZOZOスーツ画像でも同様のことが行えます。
この画像を見れば、水着の模様を介して胸やお腹の3次元形状が見えてくることがわかります。全身に模様が付けられたZOZOスーツを着用した自撮り写真がアップされたら…色んな体形状を可視化できそうです。
import numpy as np import cv2 from matplotlib import pyplot as plt from math import sin, cos img = cv2.imread('zozo_polka202.jpg',2) cimg = cv2.cvtColor( cv2.imread('zozo_polka202.jpg'), cv2.COLOR_RGB2BGR) img = cv2.adaptiveThreshold(img, 128, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 15, 5) img, contours, hierarchy = cv2.findContours( img, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE) if len(contours) > 0: for i, contour in enumerate(contours): if (contour.shape)[0]>4: ellipse = cv2.fitEllipse(contour) aMax = max(ellipse[1][0],ellipse[1][1]) aDiff = abs(ellipse[1][0]-ellipse[1][1]) if aMax < 20 and aMax > 11 and aDiff < 12: xc = sin(ellipse[2]*np.pi/180)*255 yc = cos(ellipse[2]*np.pi/180)*255 cx=int(ellipse[0][0]) cy=int(ellipse[0][1]) cv2.ellipse(cimg,ellipse, (xc,yc,255-xc),-1) #cv2.circle(cimg, (cx, cy), int((aMax-11)*2.0), (xc,yc,255-xc), -1, -1) #cv2.ellipse(cimg,ellipse,(int((aMax-11)*50.0), int((aMax-11)*50.0),int((aMax-11)*50.0)),-1) #cv2.ellipse(cimg,ellipse,(int((aMax-11)*50.0), yc+xc,int((aMax-11)*50.0)),-1) plt.imshow(np.array(cimg))