<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>circumstance evidence</title>
	<atom:link href="http://blog.n1n9.jp/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.n1n9.jp</link>
	<description>状況証拠 - ヤザキユウイチ</description>
	<lastBuildDate>Thu, 10 May 2012 19:47:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>神戸で青山繁晴さんの講演</title>
		<link>http://blog.n1n9.jp/diary/aoyama-kobe.php</link>
		<comments>http://blog.n1n9.jp/diary/aoyama-kobe.php#comments</comments>
		<pubDate>Thu, 03 May 2012 16:48:50 +0000</pubDate>
		<dc:creator>yuichi</dc:creator>
				<category><![CDATA[diary]]></category>

		<guid isPermaLink="false">http://blog.n1n9.jp/?p=1354</guid>
		<description><![CDATA[友達の奈良での披露宴と二日しか日程がずれていなかったのもあって、先日神戸の三ノ宮で開かれた独立講演会に行ってきました。]]></description>
			<content:encoded><![CDATA[<p>友達の奈良での披露宴と二日しか日程がずれていなかったのもあって、先日神戸の三ノ宮で開かれた独立講演会に行ってきました。<br />
神戸は震災の数年後に行って以来でちょうど日本が主権回復して60年の日でした。神戸三ノ宮の貸会議室で、手弁当らしく奥さんとお子さんが駆り出されてました。<br />
13〜18時すぎまで5時間ほど。前後半にわかれていて、前半は３つほど大きいテーマについて話し、後半はほとんど質問に答える形式。オフレコということでかなり踏み込んだ話もありました。</p>
<p>せっかく来たので何か質問しようと思い、青山さんは実務家だと思いますがそれでも現状の政治への批判などは評論的であり、本人主体の内面からの発露とか何が彼を彼たらしめているか語ってもらうのにどういう質問をしたらいいかなと考えて、ジャーナリスティックなレポートを書慣れた書き手としてどのような小説を書こうとしているのか興味があったのと、ほかの方の質問で、歴史の本を書かないかという質問があり自分は向いてないと答えていったが、これまで現地で目でみて体験してきたことを小説という形で残すことはむしろありえるんじゃないかという期待もありました。<br />
そこで「やりたいことの一つとして小説があるというお話がありました。話せる範囲でかまわないので小説のテーマと、小説を書こうと思った原点というか原体験のようなものがあれば教えてください」と質問しました。</p>
<p>回答してくださっていわく、最初に書いた小説で入選対象となったが事実ベースじゃないものを次回書けるのかということで落選となり、それが経験に基づかない小説を書かなきゃという縛りになっていて、それをクリアしないと次に進めないとのことでした。が、実はほぼ書きあげたものを８年くらいおきっぱなしにしていて最近出版社に出版をお願いできたとのこと。それが出たら改めて、経験に基づいた小説を書きたいとおっしゃってました。<br />
といったことを会場歩きながら話していき、話の終わり頃にこちらの方にまた戻ってきてくれて、目と目を合わせて話を伺いました。</p>
<p>原体験については「実家にあった二本の川の話を書きたい。当時の自分には王国にみえた。」と。これが比喩が突拍子もない言葉だったのでびっくりしたのですが、王国というのはこれまで読んできた物語に登場してきたものか、実際に王国とよべる国々への滞在経験が付加されてそう言わせたのかはわかりませんが、そこまで根掘り葉掘り聞くのも人の夢に大して失礼かなと思い、秘すれば花なりの言葉もある通り、これ以上は遠慮しておきました。</p>
<p>いずれにしても自覚的なんだとは思いますが、すごくフラットに人と接する人だなということは改めて感じ入ったのと、以前アバクロのポロシャツを襟立てて着てたので、スポーツを複数やっている話と合わせて、なるほどスポーツマンタイプのマッチョな人なのねと思いつつ、あれだけ理路整然と端的に話せるのはすごいなと素直に思いました。</p>
<p><a href="http://blog.goo.ne.jp/shiaoyama_july/e/1dc5c681d50a5d20d057068932d47a59">父とぼく | ON THE ROAD 青山繁晴の道すがらエッセイ</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.n1n9.jp/diary/aoyama-kobe.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressで国際化対応</title>
		<link>http://blog.n1n9.jp/how2/wordpress-internationalization.php</link>
		<comments>http://blog.n1n9.jp/how2/wordpress-internationalization.php#comments</comments>
		<pubDate>Mon, 30 Apr 2012 15:28:32 +0000</pubDate>
		<dc:creator>yuichi</dc:creator>
				<category><![CDATA[how2]]></category>

		<guid isPermaLink="false">http://blog.n1n9.jp/?p=1328</guid>
		<description><![CDATA[WordPressで作るサイトをローカライズしたい場合、WordPressが採用する国際化のルールに対応したテーマやプラグインを使用する必要があります。
その上で、ひとくちにローカライズといっても実装のされ方の違いで色んなレイヤーのものがあります。]]></description>
			<content:encoded><![CDATA[<p>WordPressで作るサイトをローカライズしたい場合、WordPressが採用する国際化のルールに対応したテーマやプラグインを使用する必要があります。</p>
<p>その上で、ひとくちにローカライズといっても実装のされ方の違いで色んなレイヤーのものがあります。</p>
<ol>
<li>WordPress本体に含まれる文言の翻訳</li>
<li>テーマファイル、プラグインファイルに含まれる文言の翻訳</li>
<li>投稿やページなどのコンテンツそのものの翻訳</li>
<li>WordPress本体の設定のうち、ユーザーが入力し設定する文言（サイトのタグラインとか）の翻訳</li>
<li>プラグインの設定のうち、ユーザーが入力し設定する文言の翻訳</li>
<li>言語ごとに出し分けする必要があるが、WPMLが出力に関わっていないページのため動的に出し分けられないものへの対応</li>
<li>言語ごとにURLへどう反映させるか、ページの切り替えやナビゲーションといかに連動させるか</li>
</ol>
<p>これらは別々に対応していく必要があります。</p>
<h2>概観すると…</h2>
<p>1と2はgettextという仕組みを使い、WordPress本体の機能のみでまかなえます。<br />
3〜7はプラグインが必要になる部分で、とくに5についてあまり書かれているものを見かけなかったなーというのがこのエントリを書こうと思ったきっかけです。</p>
<p>で、3〜7を実現するのに何のプラグインを使うか。有料ですがWPML一択なんじゃないかという印象。<br />
隅から隅まで探した訳ではないので他にあったら教えていただきたいですけど…！（免責）<br />
たまに比較されるqTranslateは、4とか5は対応してないんじゃないかと。</p>
<h2>個別の対応策</h2>
<h3>1と2</h3>
<p>.poファイルを編集して.moファイルを書きだせばいいですね。編集ツールとしては管理画面で編集できる<a href="http://wordpress.org/extend/plugins/codestyling-localization/" target="_blank">Codestyling Localization</a>や、デスクトップアプリの<a href="http://www.poedit.net/" target="_blank">Poedit</a>なんかがあります。</p>
<h3>3</h3>
<p>7も見越すとプラグインが必要。<br />
WPMLの場合は以下に説明があります。<br />
<a href="http://wpml.org/ja/documentation-5/%E8%87%AA%E5%88%86%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%82%92%E7%BF%BB%E8%A8%B3%E3%81%99%E3%82%8B/" target="_blank">自分のコンテンツを翻訳する | WPML</a></p>
<h3>4</h3>
<p>WPMLであればストリング翻訳というプラグイン内プラグインみたいなものを入れれば、クロールして収集し、管理画面上に表示してくれるのでそこで翻訳文を入れればOK。<br />
<a href="http://wpml.org/ja/documentation-5/%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%82%AC%E3%82%A4%E3%83%89/%E3%82%B9%E3%83%88%E3%83%AA%E3%83%B3%E3%82%B0%E7%BF%BB%E8%A8%B3/" target="_blank">ストリング翻訳 | WPML</a></p>
<h3>5</h3>
<p>ややこしく、サイトを見てもよくわかりません。<br />
<a href="http://wpml.org/ja/documentation-5/%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88/%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%A8%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AB%E3%82%88%E3%82%8B%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E7%BF%BB%E8%A8%B3/" target="_blank">その他のプラグインとテーマによるテキスト翻訳 | WPML</a><br />
しかも結論からいうと上記ページは参考にならず、参考にすべきは以下のページです。<br />
<a href="http://wpml.org/documentation/support/language-configuration-files/" target="_blank">Language Configuration Files | WPML</a><br />
の4がそれ。</p>
<p>「ストリング翻訳」の機能拡張なので、そのプラグインのディレクトリ（例：/wp-content/plugin/wpml-string-translation/wpml-config.xml）に、xml形式の設定ファイル（wpml-config.xml）を設置します。<br />
一般的にプラグインのユーザー設定を保存する場所としてwp_options というtableを利用することが多いらしいんですが、このやり方はその場合のみ有効。wp_optionsの中で、翻訳したい文言が使用しているフィールド名をkey名として記載すればOK。</p>
<p>例：</p>
<pre class="brush: xml; title: ; notranslate">
&lt;wpml-config&gt;
    &lt;admin-texts&gt;
        &lt;key name=&quot;sidebarlogin_welcome_heading&quot;&gt;
        &lt;/key&gt;
    &lt;/admin-texts&gt;
&lt;/wpml-config&gt;
</pre>
<h3>6</h3>
<p>これはハードコードして出し分ける必要があり、WPMLではこんな感じ。</p>
<p>・言語で振り分ける場合</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php if (ICL_LANGUAGE_CODE == 'ja') { ?&gt;
	&lt;!-- Japanese contents here--&gt;
&lt;?php } else if (ICL_LANGUAGE_CODE == 'en') { ?&gt;
	&lt;!-- English contents here--&gt;
&lt;?php } ?&gt;
</pre>
<h3>7</h3>
<p>プラグインの機能依存なのと設定画面で容易に見つけられると思うのでここでは省略します。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.n1n9.jp/how2/wordpress-internationalization.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oFコンパイルエラー時に確認すること</title>
		<link>http://blog.n1n9.jp/clipping/of-compile-error.php</link>
		<comments>http://blog.n1n9.jp/clipping/of-compile-error.php#comments</comments>
		<pubDate>Sat, 21 Apr 2012 06:46:06 +0000</pubDate>
		<dc:creator>yuichi</dc:creator>
				<category><![CDATA[clipping]]></category>

		<guid isPermaLink="false">http://blog.n1n9.jp/?p=1317</guid>
		<description><![CDATA[openFrameworksでコンパイル時にエラーとなることメモ。随時更新します。対象OSはMac限定です。]]></description>
			<content:encoded><![CDATA[<p>openFrameworksでコンパイル時にエラーとなることメモ。随時更新します。対象OSはMac限定です。</p>
<h3>リンクが切れている／パスが通っていない</h3>
<ul>
<li>oFは本体ファイルへの相対パスが今のところ厳格なので、１階層でもズレているとパスが通らない。本体ダウンロード時についてくるexampleファイル群の置いてある相対位置を参照し、同じ相対位置へファイルを置くのが安牌。</li>
<li>ライブラリやaddonへのリンク切れ。XCode上で赤字表示されている場合はリンクが切れていると考えてよいので、パス情報を更新するか再度読み込む。</li>
<li>読み込もうとするライブラリのヴァージョン違いに起因する、ファイル名や関数名の変更に伴うリンク切れ。</li>
</ul>
<h3>XCodeやOSのヴァージョン</h3>
<ul>
<li>Xcode4になってXcode3までのデフォルトコンパイラであったGCCからLLVMへコンパイラが変更になっていて、これに伴うコンパイルエラーが出る場合がある( http://blog.fenrir-inc.com/jp/2011/07/llvm.html )。</li>
<li>「MacSetRect が宣言されてない」とか「ofQuickTimePlayer.cppやofQuickTimeGrabber.cpp関係のエラーが出る 」場合、SDKの指定を10.7から10.6に変更するとコンパイルできるようになる( http://forum.openframeworks.cc/index.php?topic=6441.0 http://blog.davidpaulrosser.co.uk/2011/08/getting-openframeworks-0-07-compiling-with-osx-10-7/ )。これはSDKの仕様変更に基づくものだと思うので（要調査）あくまで10.6時代に書かれたコードを極力手間なくコンパイルするための方法。</li>
<li>有効なアーキテクチャが不要なものまで設定されている場合に、そのアーキテクチャ向けにもコンパイルしようとして結果エラーが出る場合がある。この場合は有効なアーキテクチャ設定欄からIntelMacであればPowerPC系のアーキテクチャ（ppc, ppc64, ppc7400, ppc970など）を削除してあげるとエラーがでなくなる。</li>
</ul>
<h3>OpenCV関係</h3>
<ul>
<li>OpenCV自体がヴァージョン1.x系と2.x系でファイル構成がだいぶ異なる( http://blog.n1n9.jp/how2/of-opencv.php )。</li>
<li>プロジェクト設定ファイルにOpenCVへの相対パスが記述されていない場合は記述する必要がある( http://openframeworks.jp/forum/topic.php?id=173 )。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.n1n9.jp/clipping/of-compile-error.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iModela</title>
		<link>http://blog.n1n9.jp/study/imodela.php</link>
		<comments>http://blog.n1n9.jp/study/imodela.php#comments</comments>
		<pubDate>Fri, 30 Dec 2011 13:25:19 +0000</pubDate>
		<dc:creator>yuichi</dc:creator>
				<category><![CDATA[study]]></category>

		<guid isPermaLink="false">http://blog.n1n9.jp/?p=1252</guid>
		<description><![CDATA[iModelaについて、あまり経験のないことをするので、できること／知ってることと、そうでないことを切り分けるためのメモ。随時更新予定。]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.n1n9.jp/images/2011/12/388626_10150437060368201_649793200_8568428_1742293154_n.jpeg" alt="388626_10150437060368201_649793200_8568428_1742293154_n" title="388626_10150437060368201_649793200_8568428_1742293154_n" width="612" height="612" class="alignnone size-full wp-image-1256" /></p>
<p>iModelaについて、あまり経験のないことをするので、できること／知ってることと、そうでないことを切り分けるためのメモ。随時更新予定。</p>
<h3>iModelaで作れるもの</h3>
<dt>材料</dt>
<dd>切削可能な材料はプラスチック樹脂やその他の成形樹脂で具体的には、モデリングワックス／サンモジュール／アクリル／ケミカルウッド／バルサ／朴／発泡材、等とのこと。
</dd>
<dt>大きさ</dt>
<dd>86mm x 55mm x 26mm(高さ)。重量は200gまで。</dd>
<h3>2.5D / 3D</h3>
<p>作れるものは大きく2.5Dと3Dにわけられる。</p>
<ul>
<li>2.5D…2Dの図形に深さをもたせたもの。Adobe Illustratorなどの平面データを元に、iModelaで素材を加工する。素材が厚みを持っているので結果的に出来上がるものは立体物となる。これがいわゆる2.5D。</li>
<li>3D…3Dでモデリングしたデータをそのまま丸々立体物として一度の加工にて作るのはかなり難しいみたい。そのため以下二つのどちらのアプローチを取るのが現実的らしい。</li>
<ul>
<li>a…立体物を半分にスライスした状態のものを前半分、後ろ半分と別々に出力してから、手作業でつなげる。</li>
<li>b…前半分、後ろ半分の流し型をiModelaでつくる。その型を使って素材を流しこみ立体物を造形する。</li>
</ul>
</ul>
<p>2.5Dにおける手順の例<br />
<a href="http://www.youtube.com/watch?v=zYwou0YHXPk">http://www.youtube.com/watch?v=zYwou0YHXPk</a></p>
<p>3D-aにおける手順の例</p>
<ul>
<li><a href="http://www.youtube.com/watch?v=Xkcsm0WG7v8">http://www.youtube.com/watch?v=Xkcsm0WG7v8</a></li>
<li><a href="http://monoist.atmarkit.co.jp/mn/articles/1111/09/news008.html">http://monoist.atmarkit.co.jp/mn/articles/1111/09/news008.html</a></li>
</ul>
<h3>付属アプリとその機能</h3>
<p>以下URLを参照のこと。<br />
<a href="http://digilife.bz/wiki/index.php?iModela%2F%E4%BB%98%E5%B1%9E%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2" target="_blank">http://digilife.bz/wiki/index.php?iModela%2F%E4%BB%98%E5%B1%9E%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2</a></p>
<h3>iModela公式特設サイト</h3>
<p><a href="http://icreate.rolanddg.com/iModela/DGJ/Japanese/index.html/" target="_blank">http://icreate.rolanddg.com/iModela/DGJ/Japanese/index.html/</a></p>
<h3>スペックについてのメモ</h3>
<p><a href="http://matosus304.blog106.fc2.com/blog-entry-202.html" target="_blank">http://matosus304.blog106.fc2.com/blog-entry-202.html</a></p>
<h3>実践レポート</h3>
<ul>
<li><a href="http://monoist.atmarkit.co.jp/mn/articles/1111/09/news008.html" target="_blank">http://monoist.atmarkit.co.jp/mn/articles/1111/09/news008.html</a></li>
<li><a href="http://infohigh.server.ne.jp/temp/imodela_fig_blt/" target="_blank">http://infohigh.server.ne.jp/temp/imodela_fig_blt/</a></li>
<li><a href="http://niryuu.hatenablog.com/entry/2011/12/06/074734">http://niryuu.hatenablog.com/entry/2011/12/06/074734</a></li>
</ul>
<h3>メンテナンス</h3>
<ul>
<li><a href="http://www.youtube.com/watch?v=CbcIl1GWTzc" target="_blank">（公式）X軸クリーニング</a></li>
<li><a href="http://digilife.bz/wiki/index.php?iModela%2F%E3%83%A1%E3%83%B3%E3%83%86%E3%83%8A%E3%83%B3%E3%82%B9" target="_blank">iModela/メンテナンス &#8211; DIGIらいふ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.n1n9.jp/study/imodela.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AVCHDファイルを編集したい！</title>
		<link>http://blog.n1n9.jp/how2/avchd-edit.php</link>
		<comments>http://blog.n1n9.jp/how2/avchd-edit.php#comments</comments>
		<pubDate>Sat, 10 Dec 2011 13:10:54 +0000</pubDate>
		<dc:creator>yuichi</dc:creator>
				<category><![CDATA[how2]]></category>

		<guid isPermaLink="false">http://blog.n1n9.jp/?p=1234</guid>
		<description><![CDATA[デジカメで撮影した動画を編集したいだけなのに、そこにたどり着くまでエライ大変だったという話。

ソニーやパナソニックのデジカメで撮影した動画は、AVCHDというフォーマットが採用されてます。
]]></description>
			<content:encoded><![CDATA[<p>デジカメで撮影した動画を編集したいだけなのに、そこにたどり着くまでエライ大変だったという話。</p>
<p>ソニーやパナソニックのデジカメで撮影した動画は、AVCHDというフォーマットが採用されてます。</p>
<blockquote cite="http://ja.wikipedia.org/wiki/AVCHD"><p>映像には高効率符号化が可能なH.264/MPEG-4 AVC方式を採用、音声にはドルビーデジタル (AC-3) 方式（LPCM：オプション）を採用、多重化にMPEG2-TSを採用したものである。（Wikipedia）<a href="http://ja.wikipedia.org/wiki/AVCHD">http://ja.wikipedia.org/wiki/AVCHD</a></p></blockquote>
<p>MPEG2とMPEG4のハイブリットなんですかね。閲覧に特化して高い圧縮率を確保するための規格なので、リアルタイムで再生しながら編集するのがスペックの高いPCであっても困難である、と。</p>
<p>切り出すだけだったり、そんなに凝った編集をしないのであれば以下のツールでもまかなえるようです。</p>
<p>AVCHD/TS/MTS/M2TSを無劣化でカット・編集できるフリーソフト「TSSniper」<br />
<a href="http://gigazine.net/news/20111018_tssniper/">http://gigazine.net/news/20111018_tssniper/</a></p>
<p>Windows Live ムービーメーカーがAVCHDにネイティブ対応し編集可能<br />
（ただしちょっとためした限りは編集時のリアルタイム再生は出来ていなかったような…）<br />
<a href="http://hangar7.jp/movie/avchd-edit.html">http://hangar7.jp/movie/avchd-edit.html</a></p>
<p><!-- 追記 --><br />
またアドビのプレミアCS5であれば、リアルタイム再生しながらの編集に対応しているようです。</p>
<blockquote cite="http://news.mynavi.jp/articles/2010/12/03/app5v8/index.html"><p>圧縮処理が重く、PCで扱いにくいとされるAVCHDでも、HDVと同程度に編集できるのは驚きである。<a href="http://news.mynavi.jp/articles/2010/12/03/app5v8/index.html">http://news.mynavi.jp/articles/2010/12/03/app5v8/index.html</a></p></blockquote>
<p><!-- 追記 --></p>
<p>まあそれほど凝った編集をしないまでも特定のプラグインを使いたかったり他ソフトと連携したかったりでぼくの場合はFinal Cut Pro Xを使おうと思っていたのですが、上記知らないまま実際にMacbook Pro（Core i7 2.66GHz / メモリ8GB）環境でFCPXにてファイルを読み込んでもリアルタイムで再生しながら編集できなかったですね。で調べてみると、</p>
<blockquote cite="http://av.watch.impress.co.jp/docs/series/zooma/20091021_323032.html"><p>「AVCHDをリアルタイムで再生可能にするためには、編集用のコーデックに変換するというのが一般的であった。トムソン・カノープスのEDIUSシリーズであればCanopus HQ Codecに、アップルFinal Cut ProであればProRes 422に変換すれば、リアルタイム再生でき、ネイティブファイルと遜色ない画質で編集が可能である。（小寺さん）<a href="http://av.watch.impress.co.jp/docs/series/zooma/20091021_323032.html">http://av.watch.impress.co.jp/docs/series/zooma/20091021_323032.html</a>」</p></blockquote>
<p>とのこと。ふむふむProRes 422というコーデックを使用した中間ファイルを用意すればいいのね、と。追加で調べて、Final Cut系でソフトに対応しているコーデックの種類としては、</p>
<p>Final Cut Express (version 3.0 and up) や Final Cut Pro 4.0, 4.5, 5の場合は、Apple Intermediate Codecを。<br />
Final Cut Pro 6, 7以上ならProRes 422を、ということのようです。<br />
<a href="http://www.elvirasweeney.com/iweb/ElviraSweeney/Joy_with_MPEG_Streamclip.html">http://www.elvirasweeney.com/iweb/ElviraSweeney/Joy_with_MPEG_Streamclip.html</a></p>
<p>リアルタイム再生しながら編集に対応したソフトも一つだけ（EDIUS Neo 2 Booster）あるようです。力技ではあるのと編集もこのソフト上で行うことになるので、お好み次第で。<br />
<a href="http://av.watch.impress.co.jp/docs/series/zooma/20091021_323032.html">http://av.watch.impress.co.jp/docs/series/zooma/20091021_323032.html</a></p>
<p>で、この辺（<a href="http://mount-q.com/yamaqblog/?p=5575">http://mount-q.com/yamaqblog/?p=5575</a>）も読んだりして、対応アプリは、CompressorかMPEG Streamclipを使えばOKと。ただぼくの場合は.mtsファイル（SDカードに保存されていた動画ファイル）を両アプリとも直接読み込んではくれなくて、一旦MP4化する必要がありました（ffmpegのコマンドラインでトランスコーディングなしでサクっとできる）。<br />
その際、ffmpegのコマンドラインでMP4化する際の自動化パッチファイル（MacなのでAutometer）を用意してくれてる人がいました。<br />
<a href="https://discussions.apple.com/thread/2380085?threadID=2380085&#038;tstart=0">https://discussions.apple.com/thread/2380085?threadID=2380085&#038;tstart=0</a><br />
<a href="https://public.me.com/catservant/ja/">https://public.me.com/catservant/ja/</a><br />
ただし元ファイルはそのままに、新しくファイルを生成するので、トランスコーディングはしないもののファイルを実体化するのにファイルサイズ相応の時間がかかりました。</p>
<p>その後やっとCompressorやMPEG Streamclipが読み込んでくれて、ProRes 422使った圧縮が可能になります。<br />
以下はMPEG Streamclipでの設定の参考に。読み込み時にファイル形式を選んで、その後圧縮形式など細かいパラメータを選ぶことになります。最初のダイアログでProRes 422は選択肢に出ない、っと。<br />
<a href="http://www.youtube.com/watch?v=HWE2Kk1MTbw">http://www.youtube.com/watch?v=HWE2Kk1MTbw</a></p>
<p>リサーチ中に別な方法も見つけました。シェアウェア（$49.99）ですがこれを使うとMPEG Streamclipなどを使わなくてもこのアプリだけでProRes 422に変換できます。<br />
<a href="http://www.divergentmedia.com/clipwrap">http://www.divergentmedia.com/clipwrap</a></p>
<p>Compressor、MPEG Streamclip、ClipWrapのどれでもバッチ処理いけます。</p>
<p>ProResというやつも5種類、Apple ProRes 4444, Apple ProRes 422 (HQ), Apple ProRes 422, Apple ProRes 422 (LT), Apple ProRes 422 (Proxy)あるけども、その差は以下の通り。<br />
<a href="http://documentation.apple.com/en/finalcutpro/professionalformatsandworkflows/index.html#chapter=10%26section=2%26tasks=true">http://documentation.apple.com/en/finalcutpro/professionalformatsandworkflows/index.html#chapter=10%26section=2%26tasks=true</a></p>
<p>で無事実行できたのですが、ファイルサイズは元のものと比べて数倍から十数倍にも膨れ上がるので要注意。ぼくの実績だと3GBが40GBになりました。そんだけ圧縮してたらリアルタイム編集ができないのもうなずけます。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.n1n9.jp/how2/avchd-edit.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The World as Instrument</title>
		<link>http://blog.n1n9.jp/study/the-world-as-instrument.php</link>
		<comments>http://blog.n1n9.jp/study/the-world-as-instrument.php#comments</comments>
		<pubDate>Tue, 20 Sep 2011 08:52:19 +0000</pubDate>
		<dc:creator>yuichi</dc:creator>
				<category><![CDATA[study]]></category>

		<guid isPermaLink="false">http://blog.n1n9.jp/?p=1208</guid>
		<description><![CDATA[藝大で5日間に渡って行われたフランシスコ・ロペス氏のワークショップ「The World as Instrument」に参加してきました。]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.n1n9.jp/images/2011/09/480f34d5d1214c198709e56c612275ff_7.jpeg" alt="480f34d5d1214c198709e56c612275ff_7" title="480f34d5d1214c198709e56c612275ff_7" width="612" height="612" class="alignnone size-full wp-image-1216" /><br />
（ロペス氏が一個しか機材を使ってないらしいので同じものを購入。錬成公園にて。）</p>
<p>藝大で5日間に渡って行われたフランシスコ・ロペス氏のワークショップ「The World as Instrument」に参加してきました。<br />
企画された城さんと以前（私がLTで登壇したsigixdの4回目）お会いして面識があったこともあり、3331からも近いし、何か面白いテーマの講義があれば参加したいなーと、わりと軽い気持ちで参加したのですが、たとえば楽譜からメロディをなぞるようなものじゃない音楽のあり方とか、新しい楽器であるウダーとかテノリオンとか、iPhone/iPadアプリのSoundropをはじめとする、語弊を恐れずいうと直感的な操作の楽器アプリとか、<a href="http://www.youtube.com/watch?v=Ev-fqtvi0z8">Empty School</a>とか。そういったものの具体的な理論や手法があるなら知りたいなというのが動機でしたが、そこには奥深い世界観が待ってました。即物的な考え方はへし折られましたね。普段向き合っているIT脳とは使うところが違い、理解できなかった部分も多いのですが、せっかく参加したのでメモを元に記録しますが、何分メモレベルなので、参加しなかった方でここから何かを読み取るのは難しいかも。すいませんねぇ。</p>
<h2>主題っぽいこと</h2>
<p>WSに参加された方（この方の話は明晰だった）が、<a href="http://miminowakuhazushi.dtiblog.com/blog-entry-121.html">参加する前に書いているブログ記事</a>でロペス氏の言葉が引用されていて、たぶん主張したいことのエッセンスがここにありそうなので引用します。</p>
<blockquote><p>「前景／背景に意図的でアプリオリな区別はなく、耳と同じようにマイクの位置にもとづく音の不可避の出現だけがある。私は客観主義をとるのではなく、注意の『焦点』が音環境全体にあると考える」</p></blockquote>
<blockquote><p>「これは逆説的な屈折であって、録音を特定の空間に着いての記録や言及という役割に格下げしがちだ。（中略）録音の本質とは音よりも豊かで重要な世界の記録や表象ではなく、音の内的世界に焦点を合わせ、接近する方法である。表象的／関係的レベルが強調されると音は限られた意味や目的を帯び、音の内的世界は消費されてしまう。」</p></blockquote>
<blockquote><p>「聴取がプラグマティックな表象という「用途」から切り離されたとき、音楽があらわれる。私はこの権利と自由さを主張する。（中略）私にとって、音楽的状態への到達には深い聴取が、サウンド・マターの内部に侵入することが必要だ。」</p></blockquote>
<blockquote><p>「さまざまな種類の録音技術が社会にひろまっていく途中にはいくつかの段階があった。（19世紀半ばから現在にいたるまでの発言にこめられた）録音に何ができるのかという認識の移りかわりにも段階がある。それぞれの段階が音づくりの発想に強い衝撃をあたえていった。この衝撃の下、「現実世界」の音の探求がしだいに知られるようになってきた。」（この段落のみ本WS向けの文章）</p></blockquote>
<h2>授業の内容</h2>
<p>時間軸に沿って話が始まり、時間軸と重なるように4つのモードの話がありました。<br />
音と現実のインタラクションモードは４つにわけられるんだ、と。<br />
これ最初は勝手にワークフローというか音をつくる行程的なものかと思ったらそうではなく、さまざまな種類の録音技術が社会にひろまっていく途中にはいくつかの段階があり、録音に何ができるのかという認識の移りかわりにも段階があり、その歴史的経緯から概念別に抜き出したような感じですかね…。</p>
<h3>1. The World as inspiration</h3>
<p>人間のコントロールできない自然からインスピレーションを受ける音楽のこと。</p>
<p>・エスキモーの歌。笑わない人を笑わせる。ガチョウの声をまねしてる。<br />
・ピグミーの歌。環境音から影響を受けている。森とともに歌う。<br />
・ニューギニア　カウリ族。waterfallはすべての音楽をふくんでいると彼らはいう。<br />
これらをインスピレーションのもとにするというような話。</p>
<p>・Music of the Spheres<br />
・Johannes Kepler著の本、Harmonices Mundi<br />
・ミルチャ・エリアーデ</p>
<p>なども参照先として挙げられてました。</p>
<h3>2. The World captured</h3>
<p>音をキャプチャしようとする試み。</p>
<p>音をつかまえ、音を音源から分離することで現実を再構成する。サウンドモンタージュ。</p>
<p>写真と録音については歴史や経緯がよく似ている。<br />
以前に絵画というフォーマットが存在したため、写真は最初から芸術作品だと（作り手的にも社会的にも）扱われていたが音についてはそうではなかった。音については、写真にとっての絵画のような歴史がない。<br />
音のキャプチャについては元々、声のキャプチャに使わることが多かったが、その後商業的な音楽として「歌の録音」が強力に方向性をあたえられてしまった。そのため、そういったものが先入観として社会に広まっているのではないか。</p>
<p>Virtual Art: from illusion to immersion<br />
<a href="http://www.scribd.com/doc/17149258/Virtual-Art-From-Illusion-to-Immersion">http://www.scribd.com/doc/17149258/Virtual-Art-From-Illusion-to-Immersion</a></p>
<p>Changing Images of Pictorial Space<br />
<a href="http://www.goodreads.com/book/show/2220774.Changing_Images_of_Pictorial_Space">http://www.goodreads.com/book/show/2220774.Changing_Images_of_Pictorial_Space</a></p>
<h3>3. The World Reconfigured</h3>
<p>再編集された世界。</p>
<p>Pierre Schaefferという人が音の哲学、現象学を音に持ち込んだ。<br />
彼はミュジーク・コンクレート（コンクレート＝具体的な）というスタイルを発明したが、同じく彼のサウンドオブジェクトの発明の方が重要である。</p>
<p>ミュジーク・コンクレート<br />
<a href="http://ja.wikipedia.org/wiki/%E3%83%9F%E3%83%A5%E3%82%B8%E3%83%BC%E3%82%AF%E3%83%BB%E3%82%B3%E3%83%B3%E3%82%AF%E3%83%AC%E3%83%BC%E3%83%88">http://ja.wikipedia.org/wiki/%E3%83%9F%E3%83%A5%E3%82%B8%E3%83%BC%E3%82%AF%E3%83%BB%E3%82%B3%E3%83%B3%E3%82%AF%E3%83%AC%E3%83%BC%E3%83%88</a></p>
<p>「楽器」としてのラジオ?!<br />
<a href="http://www.alpha-net.ne.jp/users2/gota/swmusic/shaeffer.htm">http://www.alpha-net.ne.jp/users2/gota/swmusic/shaeffer.htm</a></p>
<p>音源と音を切り離して考える。聞く。原因に関わらず音にのみこだわる。現象学的。<br />
抽象的な音、具体的な音とは一体なにか。楽譜によって記述された楽器の音は抽象的といわれる。<br />
しかし楽譜によって分ける分け方は、録音技術の発展とともに違う捉え方が可能である。<br />
音の捉え方の変化。記述の仕方の変化。</p>
<h3>4. The World Transformed</h3>
<p>意図をもっていない音とどう向き合うか。<br />
元の音を根本的にかえてしまう。元の音はなくなってしまう。これは情報の変形でもある。<br />
これが何の音であるかはわからないし、作者も言わない。</p>
<p>seeing is forgetting the name<br />
<a href="http://www.amazon.com/Seeing-Forgetting-Name-Thing-Sees/dp/0520049209">http://www.amazon.com/Seeing-Forgetting-Name-Thing-Sees/dp/0520049209</a></p>
<h2>その他印象に残った言葉。</h2>
<p>・商業主義で当たり前とされていることも、原理原則に帰ってみると、必ずしもそのまま従う必要にない流儀がある。<br />
・中心をもたない、オープンさのあるコラボレーションネットワーク。<br />
・マルチメディアはむしろ体の中にあると考えている。<br />
・異なる領域の中からあうものをみつけていく共感覚。<br />
・人間のコントロールできない自然からインスピレーションを受ける音楽。<br />
・（これは受講者のお一人の言葉）マクルーハン的な身体拡張は、近代的な考え方ではないかと。extentionじゃなくintention。</p>
<h2>その他</h2>
<p>同時通訳されてた金子さんが知恵熱出そうなほどぶっ通しで通訳されてたのが凄まじかったです…。<br />
お疲れさまでした。<br />
最後の講義での感想でも述べたのですが、ミュジーク・コンクレートの解釈と咀嚼がまだ中途半端なのでそこをもうちょっと理解して学んだことを何かに活かせたらいいな、と。</p>
<h2>関連リンク</h2>
<p>WS告知サイト<br />
<a href="http://generativemusicworkshop.wordpress.com/2011/07/14/world-as-instrument/">http://generativemusicworkshop.wordpress.com/2011/07/14/world-as-instrument/</a></p>
<p>ロペスさん関連<br />
<a href="http://www.sonm.es/">http://www.sonm.es/</a><br />
<a href="http://www.franciscolopez.net/">http://www.franciscolopez.net/</a><br />
<a href="http://www.shift.jp.org/ja/archives/2008/04/francisco_lopez.html">http://www.shift.jp.org/ja/archives/2008/04/francisco_lopez.html</a></p>
<p>参加された方のレポート<br />
<a href="http://miminowakuhazushi.dtiblog.com/blog-entry-125.html">http://miminowakuhazushi.dtiblog.com/blog-entry-125.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.n1n9.jp/study/the-world-as-instrument.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>oFでのOpenCV (ofxCv編)</title>
		<link>http://blog.n1n9.jp/how2/ofxcv-opencv.php</link>
		<comments>http://blog.n1n9.jp/how2/ofxcv-opencv.php#comments</comments>
		<pubDate>Thu, 11 Aug 2011 12:22:17 +0000</pubDate>
		<dc:creator>yuichi</dc:creator>
				<category><![CDATA[how2]]></category>

		<guid isPermaLink="false">http://blog.n1n9.jp/?p=1192</guid>
		<description><![CDATA[立て続けにoFでのOpenCV話を。

<a href="http://blog.n1n9.jp/how2/of-opencv.php">昨日書いたエントリー</a>は、oFに含まれている公式addon、ofxOpenCvについてでしたが、ちょっと偏った実装がなされているなぁ…というのがまぁ率直な感想といえば感想でした。]]></description>
			<content:encoded><![CDATA[<div class="caution">（2012/2/9）元原稿の更新に伴い追記し、構成をReadmeファイルにいっそのこと合わせました。<a href="https://github.com/kylemcdonald/ofxCv/blob/master/readme.md">原文はこちらを参照</a>のこと。 冒頭と最後以外はReadmeの翻訳です。最後に<a href="#hosoku">補足を少し書いて</a>います。</div>
<p>立て続けにoFでのOpenCV話を。</p>
<p><a href="http://blog.n1n9.jp/how2/of-opencv.php">昨日書いたエントリー</a>は、oFに含まれている公式addon、ofxOpenCvについてでしたが、おそらくプロジェクトの成果物がそのままアドオンになるようなワークフローで、間に合わせで作った必要最低限の実装だなぁ…というのがまぁ率直な感想といえば感想でした。で、この公式addonに対してある意味異議を唱え、代替するaddonを作ろうとしてる人がいます。</p>
<p><a href="http://blog.n1n9.jp/how2/of-opencv.php">昨日のエントリー</a>にも登場するKyle McDonaldで、その名もofxCvというものを開発中。<br />
<a href="https://github.com/kylemcdonald/ofxCv">https://github.com/kylemcdonald/ofxCv</a><br />
ofxOpenCvに代替するのが目標、とステートメントがはっきり出ていて、上記ページをみるとこんな目標が掲げられています（以下Readmeファイルの内容です）。</p>
<h3>イントロダクション(Introduction)</h3>
<p>ofxCv openFrameworksにおける OpenCV ラッパーライブラリのもう一つのあり方です。oF 007+以上とのみ互換性があります。最初の目的はofxOpenCvを置き換えることで、その時点で、リリースバージョン管理を開始します。それまでは不規則で大規模な方針の変更の可能性があるので、利用のオススメはしません。</p>
<h3>ゴール (Goals)</h3>
<h4>有用な方法で複雑さを包みこむ (Wrap complex things in a helpful way)</h4>
<p>本物のCV関数よりも少ない引数で利用できるようにします。<br />
高速化するための動的なメモリ割り当てをハンドリングできる、スマートなインターフェースを提供します。<br />
（訳注：もう一行あるのですが意味が汲み取れず…&#8217;or providing in place and out of place alternatives.&#8217;）</p>
<h4>OpenCVの力を明瞭に提示する (Present the power of OpenCv clearly)</h4>
<p>直感的な方法で命名することや、さらに重要なことは、そのクラスがあるデータを変換するメソッドを持つんだということだがわかりやすいようにするということ。また、CVの機能のデモを提供することを意味し、一般的にofxOpenCvよりも有用であること。</p>
<h4>openFrameworksとOpenCVの相互運用性 (Interoperability of openFrameworks and OpenCv)</h4>
<p>軽量の変換機能を提供することにより、簡単にCVを直接操作できるようにします。また変換を行うCV関数のラッパーを提供します。</p>
<h4>優雅な内部OpenCVのコード (Elegant internal OpenCv code)</h4>
<p>OpenCVを直接使用する足がかりを提供するために、すべての機能においてきれいな実装を提供します。これは、関数名と変数名をOpenCVのドキュメントに従って使用し、コードを介して他の人に明確にそれを説明できるようにするということです。時には重いテンプレートや、他にも難しい構造のものが存在しますが、これらは可能な限り避けるべきです。</p>
<h3>使い方 (Usage)</h3>
<p>readmeファイル（この文章）は古くなってしまうことが往々にしてあるのでサンプルコードの方を優先的に参照してください。</p>
<h4>プロジェクトのセットアップの仕方</h4>
<p>以下のファイルが必要です。</p>
<ul>
<li>ofxCv/libs/ofxCv/include/ ここにすべてのofxCvヘッダファイルがあります。</li>
<li>ofxCv/libs/ofxCv/src/ ここにすべてのofxCvソースファイルがあります。</li>
<li>ofxCv/src/ Which ties together all of ofxCv into a single include.</li>
<li>opencv/include/ OpenCvのヘッダファイルです。addons/ofxOpenCv/ に保存されています。</li>
<li>opencv/lib/ あらかじめコンパイルされた静的なOpenCVライブラリで addons/ofxOpenCv/ に保存されています。</li>
</ul>
<p>OpenCvのヘッダファイルがどこにあるのかプロジェクトファイルのリンカーに知らせる必要があります。XCodeではプロジェクトファイルの以下の場所を修正します。</p>
<pre class="brush: cpp; title: ; notranslate">HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) &quot;../../../addons/ofxOpenCv/libs/opencv/include/&quot; &quot;../../../addons/ofxCv/libs/ofxCv/include/&quot;</pre>
<h4>Including ofxCv</h4>
<p>testApp.hの中でこの一文を追記する必要があります。</p>
<pre class="brush: cpp; title: ; notranslate">#include &quot;ofxCv.h&quot;</pre>
<p>OpenCvはcvという名前空間を使用し、ofxCvはofxCvという名前空間を使用します。以下のコードを書くことで自動的にコードに含めることができます。</p>
<pre class="brush: cpp; title: ; notranslate">using namespace cv;
using namespace ofxCv;</pre>
<p>ofxCvのソースコードをみると、たくさんの ofxCv:: と cv:: があるのがわかります。ごくまれに自分自身で cv:: と書く必要があります。例えばOSXではRect（矩形）とPoint（点)はOpenCvで定義されていますが、MacTypes.hでも定義されています。ですのでOpenCVの方を使用する時には曖昧さをなくすために cv::Rect や cv::Point を使用してください。</p>
<p>ofxCvは名前空間のアドバンテージとして関数名のオーバーロードを利用しています。つまり cv::Canny() というofxCvのラッパーは ofxCv::Canny() としても呼ぶことが可能です。シンプルにCanny()と書いた場合は渡した引数によって呼ばれる関数が決まります。</p>
<h4>Working with ofxCv</h4>
<p>ofxOpenCvとは異なり、ofxCvでは、第三の型（例えばofxCvGrayscaleImage）を導入するよりも、ネイティブのopenFrameworksの型またはネイティブのOpenCVの型のいずれかを利用してください。oFとOpenCVの型を使ってスムーズに作業できるように、ofxCvにはtoCv() 関数とtoOf()関数が含まれています。openFrameworksのデータをOpenCVのデータに変換したり、その逆の変換をしたりする関数です。その際、画像のように大きいデータの場合はそれをコピーするのではなくラップして（包んで）扱います。vectorのように小さいデータの場合は、データをコピーすることによって行われます。</p>
<p>ofxCvの残りの部分は主にヘルパー関数（たとえばthreshold()）とラッパークラス（たとえばCalibration）です。</p>
<h5>toCv()</h5>
<p>toCv() はoFのデータをOpenCvのデータへ変換します。使用例です。</p>
<pre class="brush: cpp; title: ; notranslate">
ofImage img;
img.loadImage(&quot;image.png&quot;);
Mat imgMat = toCv(img);
</pre>
<p>ここではimgMatと名前をつけたラッパーデータを用いています。ディープコピーをするにはclone()を使用してください。</p>
<pre class="brush: cpp; title: ; notranslate">
Mat imgMatClone = toCv(img).clone();
</pre>
<p>もしくは copy() を使用します。これは toCv() がサポートするどんな種類のデータでも扱えます。</p>
<pre class="brush: cpp; title: ; notranslate">
Mat imgCopy;
copy(img, imgCopy);
</pre>
<p>toCv() は IplImage*を返す、ofxOpenCvの ofxCvImage::getCvImage() メソッドに似ています。最大の違いはOpenCvのコードをダイレクトに呼んでいる代わりには toCv() をいつも使える訳ではないということです。言い換えるとその場合はこう書く必要があります。</p>
<pre class="brush: cpp; title: ; notranslate">
Mat imgMat = toCv(img);
cv::someFunction(imgMat, ...);
</pre>
<p>しかしこんな風に toCv() を使用するのは避けてください。</p>
<pre class="brush: cpp; title: ; notranslate">
cv::someFunction(toCv(img), ...);
</pre>
<p>なぜなら代わりに何かをするのは大抵コンパイルエラーを引き起こすからです。具体的には、関数がnon-constなリファレンスをパラメータとして必要な時に、代わりに toCv() を呼ぶのは失敗します。</p>
<h5>imitate()</h5>
<p>imitate()は主にofxCvの内部で使用されます。<br />
CVの作業を実行するときは、似たディメンションとチャネルの、複数のバッファを定期的に割り当てたくなります。<br />
imitate()はプロトタイプのパターンに従い、&apos;original&apos;という元の画像あったとしたら、&apos;imitate(mirror, original)&apos;を実行することで&apos;mirror&apos;にも&apos;original&apos;と同様のバッファが割り当てられます。（注：この段落、翻訳やや不安）<br />
imitate() には大きなアドバンテージが二つあります。</p>
<ul>
<li>Mat、ofImage、ofPixels、ofVideoGrabber、その他ofBaseHasPixelsを拡張したオブジェクトだったらどれからでも使えます。</li>
<li>必要な場合にのみメモリを再割り当てします。これは自由に使用できることを意味します。</li>
</ul>
<h3>Working with OpenCv 2</h3>
<p>OpenCV2は、非常にうまく設計されたAPIです。ofxCvを使って直接OpenCV2を使用することを推奨します。以下はOpenCvを使うためのいくつかのヒントです。</p>
<h4>OpenCv Types</h4>
<p>OpenCv2では、古い&apos;IplImage&apos;の代わりに&apos;Mat&apos;クラスを使用します。<br />
メモリ割り当て、コピー、メモリ割り当て解除は、すべて自動的に処理されます。演算子&apos;=&apos;は、浅い、参照カウントのコピーです。&apos;Mat&apos;は&apos;Scalar&apos;を集めたものを含みます。&apos;Scalar&apos;は基本的なデータ型（unsigned char, bool, doubleなどなど）を集めたものを含みます。&apos;Scalar&apos; というのは、色やもしくは、その他の多次元情報を表現するための、短いベクトルです。階層構造としては &apos;Mat&apos; が &apos;Scalar&apos; を含み、&apos;Scalar&apos; には基本的なデータ型が含まれます。</p>
<p>Different functions accept Mat in different ways:</p>
<ul>
<li>
<code>Mat</code> 基になるデータの軽いコピーを作ります。書くのが簡単で、関数に引数を渡す時に「代わりに」<code>toCv()</code>を使うこよができます。</li>
<li>
<code>Mat&amp;</code>と書くと、渡されたヘッダファイルを関数が調整することが可能です。つまり必要に応じて関数は割り当てが可能です。</li>
<li>
<code>const Mat&amp;</code>と書くと基になるデータを関数が調整できなくなります。可能であれば<code>Mat</code>を使うべきです。これもまた<code>toCv()</code>の使い方の「代わり」に使えます。</li>
</ul>
<h4>Mat operations</h4>
<p>同じサイズと型の&apos;Mat&apos;オブジェクトにおける基本的な算術演算は、行列式で行うことができます。<br />
行列式というのは&apos;Mat&apos;、&apos;Scalar&apos;および基本的なデータ型を受け入れるオーバーロードされた演算子の集まりです。<br />
通常の式は以下のようになりますが、</p>
<pre class="brush: cpp; title: ; notranslate">
float x, a, b;
...
x = (a + b) * 10;
</pre>
<p>行列演算も似ていて、</p>
<pre class="brush: cpp; title: ; notranslate">
Mat x, a, b;
...
x = (a + b) * 10;
</pre>
<p>ここでやっていることは、すべてのaとbを足したものに10をかけ、xに代入しています。</p>
<p>行列式では数学の演算子（+, -, / (割り算), * (掛け算)、.mul()という、要素ごとのの乗算）が使えます。<br />
!=, ==, <, >, >=, <=などの比較演算子も同様に使えます（<=は閾値を出すのに便利）。<br />
二項演算子の &#038;、|、^、~も同様。他にもabs()、min()、max()あたりは使えます。<br />
すべてのリストについてはOpenCvのドキュメントかmat.hppを参照ください。</p>
<ul>
<li>OpenCV 2.2 C++ リファレンス</li>
<li>OpenCV 2.2 チートシート (C++) (PDF)</li>
</ul>
<h3><a name="hosoku">補足</a></h3>
<p>…とかなり確信を持って取り組んでることがわかります。ページ下部には &apos;ofxCv was developed with support from Yamaguchi Center for Arts and Media.&apos; とクレジットがあってYCAMと一緒に取り組んでることがわかります。そんなKyleは去年秋ごろにA.I.R.（アーティスト・イン・レジデンス)形式でYCAMに滞在していてこのofxCvや作品作りをしていたようです。</p>
<p><a href="http://www.ycam.jp/art/2011/03/guest-research-project-vol1.html" target="_blank">YCAM 山口情報芸術センター &#8211; アート: Guest Research Project vol.1関連展示</a><br />
<a href="http://interlab.ycam.jp/projects/guestresearch/vol1" target="_blank">YCAM Guest Research Project vol.1—プロジェクタカメラ・ツールキット</a></p>
<p>帰国前に一瞬東京に寄って囲む会みたいなのがあったのでそこで少し話してきました。背の高い賢そうな青年でした笑。AppleStoreにディスプレイされてるMacにソフトウェアを勝手にインストールして、物色しにきた人たちの表情をウェブカムでキャプチャした作品を作ったところ、シークレットサービス（大統領の護衛とかもしてるあの人たち）が土曜の朝に自宅まで来て家宅捜索されたそうです…笑　本人はさばさばしてて日本にくるから捜査が一旦止まってるとか自分はアーティストなのでねとか色々言ってましたよ。</p>
<p><a href="http://vimeo.com/groups/openframeworks/videos/25958231" target="_blank">People Staring at Computers(その動画作品)</a></p>
<p><a href="http://www.pocket-lint.com/news/40962/apple-webcam-artist-secret-agents" target="_blank">Apple store webcam artist has home raided by secret agents</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.n1n9.jp/how2/ofxcv-opencv.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>oFでのOpenCV</title>
		<link>http://blog.n1n9.jp/how2/of-opencv.php</link>
		<comments>http://blog.n1n9.jp/how2/of-opencv.php#comments</comments>
		<pubDate>Wed, 10 Aug 2011 13:31:30 +0000</pubDate>
		<dc:creator>yuichi</dc:creator>
				<category><![CDATA[how2]]></category>

		<guid isPermaLink="false">http://blog.n1n9.jp/?p=1178</guid>
		<description><![CDATA[今回はoF(openFrameworks)におけるOpenCVについて。自分向けのメモも兼ねてさっとまとめてるのであまり面白みのない文章ですが。]]></description>
			<content:encoded><![CDATA[<p>今回はoF(openFrameworks)におけるOpenCVについて。自分向けのメモも兼ねてさっとまとめてるのであまり面白みのない文章ですが。</p>
<h3>ヴァージョン話</h3>
<p>OpenCVに大きく1.x系と2.x系の二つあるように、それを利用するoF側のラッパーファイルも当然構成が異なる。<br />
うまいことoF自体のヴァージョンアップとからめていて、0062と0070（こないだリリースされたばかりの最新版）で同梱されているOpenCVのヴァージョンが異なりそれに伴ってファイル構成が異なる。フォルダ／ファイル構成を見比べるとこんな感じ。</p>
<p><img class="alignnone size-large wp-image-1179" title="oFOpenCV" src="http://blog.n1n9.jp/images/2011/08/oFOpenCV-570x1024.png" alt="oFOpenCV" width="570" height="1024" /></p>
<p>ファイル構成自体が変わっているので、例えば他の人の作ったプロジェクトファイルを自分の環境で動かして動かない場合、参照しているOpenCVのヴァージョンが異なるから、という可能性もある。</p>
<p>以下は0070とそれに同梱されているOpenCV 2.xの話。</p>
<h3>ファイル構成</h3>
<p>addonsの中にofxOpenCvというフォルダがあってここにoFで使うOpenCV関係のファイルが入っている。<br />
直下に libs と src というフォルダがあるが、libsの方がOpenCVの実ファイルでsrcの方がoFで用意しているラッパーファイル群。</p>
<p><a href="https://github.com/openframeworks/openFrameworks/tree/master/addons/ofxOpenCv/src">https://github.com/openframeworks/openFrameworks/tree/master/addons/ofxOpenCv/src</a></p>
<p>ofxOpenCv.h（メインの読み込みファイル）、ofxCvMain.h（廃止予定の旧読み込みファイル）、ofxCvConstants.h（定数の定義）を除くと、大きく画像処理系と輪郭検出系の二つに分かれる。</p>
<h4>画像処理系</h4>
<p>ofxCvImage.hが抽象クラスで、画像処理系共通の定義がなされている。それ以外は実クラスで画像のスペックによって分けられていて、</p>
<ul>
<li>ofxCvColorImage.h&#8230;3チャンネル持ってる8ビット(IPL_DEPTH_8U)画像。ピクセル値は各チャンネルごとに 0-255。</li>
<li>ofxCvFloatImage.h&#8230;1チャンネル持ってる32ビット(IPL_DEPTH_32F)画像。ピクセル値は基本的には0-1.0だが他の値を持たせることも可能。</li>
<li>ofxCvShortImage.h&#8230;1チャンネル持ってる16ビット(IPL_DEPTH_16U)画像。ピクセル値は0-65535。</li>
<li>ofxCvGrayscaleImage.h&#8230;1チャンネル持ってる8ビット(IPL_DEPTH_8U)画像。ピクセル値は0-255。</li>
</ul>
<p>こんな感じでメモリ節約のために最低限必要なものを使用する感じ。</p>
<h4>輪郭検出系</h4>
<p>ofxCvContourFinder.hとofxCvHaarFinder.hの二つ。</p>
<p>ofxCvContourFinder.hは「画像の中から白い塊(blob)を見つけ、重心、バウンディングボックス、面積、長さ、多角形の輪郭を認識し、結果はofxCvBlobオブジェクトのベクトルに配置される。」(&#8216;Finds white blobs in binary images and identifies centroid, bounding box, area, length and polygonal contour<br />
The result is placed in a vector of ofxCvBlob objects.&#8217;)とのこと（ソースコードのコメント文より）</p>
<p>輪郭検出する際は極力解析しやすいようにカメラなどから入力された画像に対して動きのある部分を白、ない部分を黒に二値化する前処理を行うが、ここでいう白い塊というのはその動きのある部分のことを指す。</p>
<p>ofxCvHaarFinder.hはHaar-like特徴を使った顔検出のためのクラス。<br />
Kyle McDonaldが中心になって整備中。<br />
<a href="http://forum.openframeworks.cc/index.php?&amp;topic=2006.0">http://forum.openframeworks.cc/index.php?&amp;topic=2006.0</a><br />
<a href="http://code.google.com/p/kyle/">http://code.google.com/p/kyle/</a></p>
<h4>それ以外</h4>
<p>今まで出てこなかったofxCvBlob.hは、画像処理系と輪郭検出系の両方から参照される単機能なクラスで、受け取ったpointからblobを生成する。blobというのはoF専用の用語ではなくOpenCV用語。oF作ってる人たちの定義では &#8220;多角形の輪郭で表される均質なパッチ&#8221; とのこと。</p>
<h3>雑感</h3>
<p>ofxOpenCv自体は輪郭検出系の機能を使うために用意され、画像処理系はそのための下準備のためのものという印象。<a href="http://opencv.jp/opencv-2.2/cpp/">本家OpenCVの仕様</a>と見比べると採用されている機能が限定的であることがわかる。<br />
また例えばofxCvContourFinder.hの中で、本家OpenCVのContourFinderのすべての機能が盛り込まれている訳ではないことにも注意。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.n1n9.jp/how2/of-opencv.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OpenCVことはじめ</title>
		<link>http://blog.n1n9.jp/how2/opencv-first.php</link>
		<comments>http://blog.n1n9.jp/how2/opencv-first.php#comments</comments>
		<pubDate>Sat, 30 Jul 2011 08:33:42 +0000</pubDate>
		<dc:creator>yuichi</dc:creator>
				<category><![CDATA[how2]]></category>

		<guid isPermaLink="false">http://blog.n1n9.jp/?p=1142</guid>
		<description><![CDATA[<p>外在化して一度調べたことはなるべくまた調べないためのメモ。</p>
<h3>OpenCVって何</h3>
<p>CやC++で書かれた画像の認識や処理のためのライブラリ群。これじゃ書きたりないだろうけど管々しく引用するのは今回省略。</p>]]></description>
			<content:encoded><![CDATA[<p>外在化して一度調べたことはなるべくまた調べないためのメモ。</p>
<h3>OpenCVって何</h3>
<p>CやC++で書かれた画像の認識や処理のためのライブラリ群。これじゃ書きたりないだろうけど管々しく引用するのは今回省略。</p>
<h3>ヴァージョンについて</h3>
<p>2011.7.30時点での最新ヴァージョンは2.3。1.xから2.xへメジャーアップデートした際に大きく構成や機能の変更・追加があることと、日本語リファレンスの書籍の多く（「OpenCV プログラミングブック」とか「詳解 OpenCV」とか）が発売時期から1.xベースなのが悩ましいところ。</p>
<h3>1.xと2.x系の大きな違いは？</h3>
<p>2.xの最初のリリース、2.0の（オンラインで参照できる）<a href="http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.0/">ReadMe</a>を見ると、</p>
<ul>
<li>（OpenCV 1.xのCでのAPIを残しながら）C++のインターフェイスが増えたよ。</li>
<li>機能がたくさん増えたよ。</li>
<li>ディレクトリ構造を最適化したり、ドキュメント用意したりしたよ。</li>
</ul>
<p>といった感じで詳細は個別に見ていかないとよくわからん。ChangeLogはアーカイブファイル内の ./doc/ChangeLog.htm を参照。</p>
<h3>どんな関数で構成されているか</h3>
<p>opencv.jp を参考に。</p>
<h4>1.1pre</h4>
<p>
<a href="http://opencv.jp/opencv-1.1.0/document/">http://opencv.jp/opencv-1.1.0/document/</a></p>
<h4>2.2</h4>
<p><a href="http://opencv.jp/opencv-2.2/cpp/">http://opencv.jp/opencv-2.2/cpp/</a></p>
<p>見比べるとCVの各機能がより大きく扱われてるのと、CVAUXが一見見当たらないことがわかります。CVAUXを自分が使うかどうかもまだわからないので必要に応じて要調査。</p>
<h3>Flashへの対応状況</h3>
<h4>Marilenaという移植ライブラリがある。</h4>
<p>元のCで書かれたライブラリとAS3をブリッジするライブラリはなく、手動で<a href="http://opencv.jp/opencv-1.1.0/document/opencvref_cv_detection.html#cv_pattern_objdetection">Object Detection</a>のみを移植したライブラリがある。時期からしてほぼ間違いなく1.xベース。<br />
公式ページ</p>
<ul>
<li><a href="http://www.libspark.org/wiki/mash/Marilena">http://www.libspark.org/wiki/mash/Marilena</a></li>
</ul>
<p>実装例</p>
<ul>
<li><a href="http://www.quasimondo.com/archives/000687.php">http://www.quasimondo.com/archives/000687.php</a></li>
<li><a href="http://blog.inspirit.ru/?p=416">http://blog.inspirit.ru/?p=416</a></li>
<li><a href="http://www.publicroots.com/fmt/archives/000331.html">http://www.publicroots.com/fmt/archives/000331.html</a></li>
</ul>
<h4>元のライブラリを利用してWindowsでネイティブアプリを作り、AIRと入出力する</h4>
<p>というすごい例が。<br />
<a href="http://blog.alumican.net/2010/08/10_040647">http://blog.alumican.net/2010/08/10_040647</a></p>
<h3>Processingへの対応状況</h3>
<h4>ラッパーライブラリがある。</h4>
<p><a href="http://ubaa.net/shared/processing/opencv/">http://ubaa.net/shared/processing/opencv/</a><br />
上記ページを読んでるとMacは1.1ベースでWindowsは1.0ベースらしい。<br />
実装例</p>
<ul>
<li><a href="http://r-dimension.xsrv.jp/classes_j/opencv/">http://r-dimension.xsrv.jp/classes_j/opencv/</a></li>
<li><a href="http://createdigitalmotion.com/2009/02/opencv-motion-tracking-face-recognition-with-processing-im-forever-popping-bubbles/">http://createdigitalmotion.com/2009/02/opencv-motion-tracking-face-recognition-with-processing-im-forever-popping-bubbles/</a></li>
<li><a href="http://blog.bitbytebit.co.uk/137-face-tracking-with-arduino-opencv-processing/">http://blog.bitbytebit.co.uk/137-face-tracking-with-arduino-opencv-processing/</a></li>
</ul>
<h3>oFへの対応状況</h3>
<h4>ラッパーライブラリがある。</h4>
<p>oF自体にadd onとして含まれてる。<a href="https://github.com/openframeworks/openFrameworks/commit/5c560d6d69b29b945432ef22d148d39b8a583401">現時点での最新版では2.2がサポートされている</a><br />
<a href="https://github.com/openframeworks/openFrameworks/tree/master/addons/ofxOpenCv/libs/opencv">https://github.com/openframeworks/openFrameworks/tree/master/addons/ofxOpenCv/libs/opencv</a><br />
ただしOpenCVの機能全部を網羅している訳ではないみたいで、必要な人が必要な部分をラッパーライブラリ化しているようです。</p>
<h3>Cinderへの対応状況</h3>
<h4>ラッパーライブラリがある。<a href="https://github.com/cinder/Cinder-OpenCV/blob/master/README">現時点での最新版では2.3がサポートされている</a>。</h4>
<p><a href="https://github.com/cinder/Cinder-OpenCV">https://github.com/cinder/Cinder-OpenCV</a><br />
ラッパーライブラリのファイル名を眺めた限りですが、現時点ではoFよりサポートしている範囲が広そう。<br />
<a href="https://github.com/cinder/Cinder-OpenCV/tree/master/lib/macosx">https://github.com/cinder/Cinder-OpenCV/tree/master/lib/macosx</a></p>
<h3>最後に</h3>
<p>まずは大掴みに把握したかったのでひとまずこんな感じで。<br />
oFとCinderはベースがC++なのでラッパーライブラリなくとも読みこめば使えるはず（歯がたたないけど）。またウェブカムやKinectでキャプチャした画像を解析するのをoFやCinderで行ってOSC経由でFlashでそのデータを利用することも、同じ動画を参照できて転送データ量が速度的に問題なければできそう（実際やってる人もいるし）。これ以外でも何かわかったら追記します。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.n1n9.jp/how2/opencv-first.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TextMateでprocessing</title>
		<link>http://blog.n1n9.jp/how2/textmate-processing.php</link>
		<comments>http://blog.n1n9.jp/how2/textmate-processing.php#comments</comments>
		<pubDate>Mon, 11 Jul 2011 11:04:37 +0000</pubDate>
		<dc:creator>yuichi</dc:creator>
				<category><![CDATA[how2]]></category>

		<guid isPermaLink="false">http://blog.n1n9.jp/?p=1125</guid>
		<description><![CDATA[タイトルの通りですがprocessingのエディタが苦手だったので、この機会に設定しときました。Mac OSX環境です。エディタとしてTextMateを利用し、コンパイル自体はProcessing.appに投げます。 キーワードをハイライトしたりショートカットが使えたりということでProcessing用のBundleをインストールしようと思い、検索すると少し前の記事で、GetBundleをインストールしてからGetBundleを利用してインストールする…という記事がいくつかヒットしますが、今これを書いている時点では、リポジトリがgithubに移行していて、processing用のbundleが置いてある（https://github.com/textmate/processing.tmbundle）ので、これをインストールすればOKでした。 ダウンロードするとフォルダとして認識されるのでファイル名を textmate-processing.tmbundle とリネームしてあげれば一つのパッケージとして認識してくれます。インストール場所は、 /Library/Application Support/TextMate/Bundles （全ユーザ用） か /Users/(username)/Library/Application Support/TextMate/Bundles （特定のユーザ用） か好きな方で。 &#8220;Run in Processing&#8221;がうまく動かなかったので、 http://processing.org/discourse/yabb2/YaBB.pl?num=1211907539 を参考に、 Bundles → Bundle Editor → Show Bundle EditorでBundle Editor を開き、 ・SaveをCurrent Fileに変更。 ・Commandを以下に全差し替え。 osascript &#60; tell [...]]]></description>
			<content:encoded><![CDATA[<p>タイトルの通りですがprocessingのエディタが苦手だったので、この機会に設定しときました。Mac OSX環境です。エディタとしてTextMateを利用し、コンパイル自体はProcessing.appに投げます。<br />
<img class="alignnone size-medium wp-image-1126" title="TextMateEditor" src="http://blog.n1n9.jp/images/TextMateEditor.png" alt="TextMateEditor" width="600" height="496" /><br />
キーワードをハイライトしたりショートカットが使えたりということでProcessing用のBundleをインストールしようと思い、検索すると少し前の記事で、GetBundleをインストールしてからGetBundleを利用してインストールする…という記事がいくつかヒットしますが、今これを書いている時点では、リポジトリがgithubに移行していて、processing用のbundleが置いてある（<a href="https://github.com/textmate/processing.tmbundle" target="_blank">https://github.com/textmate/processing.tmbundle</a>）ので、これをインストールすればOKでした。</p>
<p>ダウンロードするとフォルダとして認識されるのでファイル名を textmate-processing.tmbundle とリネームしてあげれば一つのパッケージとして認識してくれます。インストール場所は、<br />
/Library/Application Support/TextMate/Bundles （全ユーザ用）<br />
か<br />
/Users/(username)/Library/Application Support/TextMate/Bundles （特定のユーザ用）<br />
か好きな方で。</p>
<p>&#8220;Run in Processing&#8221;がうまく動かなかったので、<br />
<a href="http://processing.org/discourse/yabb2/YaBB.pl?num=1211907539" target="_blank">http://processing.org/discourse/yabb2/YaBB.pl?num=1211907539</a><br />
を参考に、<br />
Bundles → Bundle Editor → Show Bundle EditorでBundle Editor を開き、<br />
・SaveをCurrent Fileに変更。<br />
・Commandを以下に全差し替え。</p>
<blockquote><p>osascript &lt; tell application &#8220;Processing&#8221; to run<br />
tell application &#8220;Processing&#8221; to activate<br />
tell application &#8220;Processing&#8221; to open POSIX file &#8220;${TM_FILEPATH}&#8221;<br />
delay 1<br />
tell application &#8220;System Events&#8221; to tell process &#8220;Processing&#8221;</p>
<p>keystroke &#8220;r&#8221; using command down<br />
end tell<br />
EOF</p></blockquote>
<p>したら動いてくれました。<br />
<img class="alignnone size-medium wp-image-1127" title="BundleEditor" src="http://blog.n1n9.jp/images/BundleEditor.png" alt="BundleEditor" width="600" height="440" /></p>
<p>pdeファイルをファイル名と同名のフォルダに収めるべし、という制限はありますね。<br />
あとライブラリは所定位置に収めておく必要があります。所定位置というのはProcessing.appの環境設定で指定する、sketchbook location以下にlibrariesというフォルダ名で配置する、という感じ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.n1n9.jp/how2/textmate-processing.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

